Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React Router-id为的路径对于由HOC包装的组件无法正常工作_Reactjs_React Router - Fatal编程技术网

Reactjs React Router-id为的路径对于由HOC包装的组件无法正常工作

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

您好,我一直在使用react和react路由器dom开发此应用程序。页面组件由一个HOC包装,该HOC导入contentservice以访问rest api

我的导航位于应用程序组件中。有关部分是

<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 });
      });
  }
}