Мне удалось загрузить элемент управления Dynami c в файл, следующий за этой статьей: https://medium.com/@samarjit.samanta / Reaction-Dynami c -plugins-loading-e45905aa00a7
Однако сейчас я пытаюсь использовать компоненты пользовательского интерфейса материалов в динамически загружаемом элементе управления в компоненте render (). Все прекрасно работает, за исключением того, что тема не передается правильно, я попытался обернуть динамический c компонент с ThemeProvider и все еще не годится.
Функция рендеринга хоста -
render() {
const { formField, theme } = this.props;
if (this.state.component !== null) {
const Component = this.state.component;
return (
<ThemeProvider theme={theme}>
<Component>Hi from react component</Component>
</ThemeProvider>
);
}
return null;
}
И мой динамически загружаемый компонент MUI выглядит следующим образом:
import React from 'react';
import TextField from '@material-ui/core/TextField';
import { createStyles, withStyles } from '@material-ui/core';
const styles = (theme) => createStyles({
formControl: {
margin: theme.spacing(1),
},
formControlModified: {
margin: theme.spacing(1),
'& .MuiFilledInput-input': {
backgroundColor: theme.palette.info[theme.palette.type],
borderTopLeftRadius: '4px',
borderTopRightRadius: '4px',
},
},
});
class Field extends React.Component {
constructor(props){
super(props);
console.log('Field loading');
}
render () {
console.log('Field rendering part 2');
return <TextField id="standard-basic" label="Standard" variant="filled" />;
}
};
export default withStyles(styles, { withTheme: true })(Field);
Любые идеи о том, что я делаю неправильно. Как примечание: динамически загружаемый компонент, похоже, получает совершенно новую тему, а не тот, который я пытаюсь передать.
В любом случае, заранее благодарю за помощь Cheers Jason