Reactjs React Router-id为的路径对于由HOC包装的组件无法正常工作
您好,我一直在使用react和react路由器dom开发此应用程序。页面组件由一个HOC包装,该HOC导入contentservice以访问rest api 我的导航位于应用程序组件中。有关部分是Reactjs React Router-id为的路径对于由HOC包装的组件无法正常工作,reactjs,react-router,Reactjs,React Router,您好,我一直在使用react和react路由器dom开发此应用程序。页面组件由一个HOC包装,该HOC导入contentservice以访问rest api 我的导航位于应用程序组件中。有关部分是 <Link to="/page/123">About Page</Link> 有人知道为什么会这样吗?我不确定这是否与HOC包装的页面组件有关,但我认为这值得一提 谢谢。问题 componentdiddupdate生命周期方法接收以前的props、stat
<Link to="/page/123">About Page</Link>
有人知道为什么会这样吗?我不确定这是否与HOC包装的页面组件有关,但我认为这值得一提
谢谢。问题
componentdiddupdate
生命周期方法接收以前的props
、state
和snapshot
值,而不是下一个值
componentDidUpdate(prevProps、prevState、snapshot)
通过发送“先前”道具的匹配参数id
,您落后了一个“周期”
解决方案
使用道具中的当前id
值
componentDidUpdate(prevProps) {
if (prevProps.match.params.id !== this.props.match.params.id) {
this.props
.getEntity(this.resource, this.props.match.params.id)
.then((data) => {
this.setState({ model: data });
});
}
}
componentdiddupdate
接收上一个道具和状态,而不是下一个道具。您可能需要发送当前的id
值,即getEntity(this.resource,this.props.match.params.id)
@draw,太棒了!谢谢你拯救了这一天:)
componentDidUpdate(prevProps) {
if (prevProps.match.params.id !== this.props.match.params.id) {
this.props
.getEntity(this.resource, this.props.match.params.id)
.then((data) => {
this.setState({ model: data });
});
}
}