Может ли HMR обновить текущий модуль?Я проверил это, и, кажется, не работает.Может кто-нибудь подробно объяснить, почему это не работает?Требуется ли, чтобы всегда был модуль более высокого уровня, который обновляет модуль замены.
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import PropTypes from 'prop-types';
import { withStyles } from '@material-ui/core/styles';
import Typography from '@material-ui/core/Typography';
const styles = theme => ({});
class UserCreate extends Component {
state = {
spacing: '8',
};
render() {
const { classes } = this.props;
const { spacing } = this.state;
return (<Typography>User create says hello</Typography>)
}
}
UserCreate.propTypes = {
"classes": PropTypes.object.isRequired
}
const UserCreateWithStyles = withStyles(styles)(UserCreate)
export default UserCreateWithStyles
const element = document.getElementById('root');
export const render = (Component) => {
ReactDOM.render(<App><Component/></App>,element);
}
if (module.hot) {
module.hot.accept("./UserCreate", () => {
const NextContainer = require("./UserCreate").default;
render(NextContainer);
});
}
Обычная реализация для HMR приведена ниже.Создайте модуль более высокого порядка, который обновляет изменяющийся модуль, проверяя module.hot
app.js
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import UserCreate from './UserCreate';
const element = document.getElementById('root');
export const render = (Component) => {
ReactDOM.render(<Component>,element);
}
if (module.hot) {
module.hot.accept("./UserCreate", () => {
const NextContainer = require("./UserCreate").default;
render(NextContainer);
});
}