с использованием другой конфигурации маршрутизатора - вы получите предупреждение о реакции из-за несоответствия html.
, чтобы решить эту проблему, вы можете переключить ваш маршрутизатор на что-то вроде этого:
import React from 'react';
import { Route } from 'react-router-dom';
class RouterHandler extends React.Component {
constructor(props) {
super(props);
this.state = {
isShow: false,
};
}
componentDidMount() {
this.setState({
isShow: true,
});
}
render() {
const { isShow } = this.state;
const { component, ...props } = this.props;
if (isShow) {
return <Route {...props} component={component} />;
}
return <div>Loading...</div>;
}
}
и использоватьэто вместо вас <Router>
внутри <Switch>
это будет работать, потому что componentDidMount
вызывается только на стороне клиента.
при использовании фрагмента кода пользователь не увидит разницу.