我如何设置反应路由器道具来存储?我需要thunk函数中的此道具,然后才能在App.js组件中调用componentDidUpdate。 较早的React <16我可以在componentWillReceiveProps中做到这一点,例如:
componentWillReceiveProps(nextProps) {
if (this.props.location.pathname !== nextProps.location.pathname) {
...
nextProps.props.setRoute(routeParams);
}
}
现在我看到了两种解决方案
class RouteFetcher extends Component {
constructor(props) {
super(props);
...
props.setRoute(routeParams);
}
componentDidUpdate(prevProps) {
if (this.props.location.pathname !== prevProps.location.pathname) {
...
nextProps.props.setRoute(routeParams);
}
}
render() {
return null;
}
}
并将其放入App.js组件
<BrowserRouter>
<React.Fragment>
<RouteFetcher />
<Switch>
{configRoutes.map(props => <Route key={props.name} {...props} />)}
</Switch>
</React.Fragment>
</BrowserRouter>
任何人都曾经遇到过这种情况。我该怎么办?