材料ui指南中提供的RTL演示似乎不适用于组件。正如他们在从右到左向导内部说的,当方向:' rtl‘被设置在主题上时,他们动态地启用jss插件,但是在演示中,只有html输入是rtl,而TextField不是。
下面是来自https://material-ui-next.com/guides/right-to-left/#demo的演示代码
import React from 'react';
import { MuiThemeProvider, createMuiTheme } from 'material-ui/styles';
import TextField from 'material-ui/TextField';
const theme = createMuiTheme({
direction: 'rtl', // Both here and <body dir="rtl">
});
function Direction() {
return (
<MuiThemeProvider theme={theme}>
<div dir="rtl">
<TextField label="Name" />
<input type="text" placeholder="Name" />
</div>
</MuiThemeProvider>
);
}
export default Direction;发布于 2018-07-16 05:00:00
一旦您用插件创建了一个新的JSS实例,就需要将它提供给组件树中的所有组件。JSS有一个用于此的
JssProvider组件:
import { create } from 'jss';
import rtl from 'jss-rtl';
import JssProvider from 'react-jss/lib/JssProvider';
import { createGenerateClassName, jssPreset } from '@material-ui/core/styles';
// Configure JSS
const jss = create({ plugins: [...jssPreset().plugins, rtl()] });
// Custom Material-UI class name generator.
const generateClassName = createGenerateClassName();
function RTL(props) {
return (
<JssProvider jss={jss} generateClassName={generateClassName}>
{props.children}
</JssProvider>
);
}
https://stackoverflow.com/questions/50295770
复制相似问题