Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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 如何从不同的路由获取公共组件中的数据?_Reactjs - Fatal编程技术网

Reactjs 如何从不同的路由获取公共组件中的数据?

Reactjs 如何从不同的路由获取公共组件中的数据?,reactjs,Reactjs,我正在为不同部门的展示团队信息创建通用组件。部门列表是动态创建的,例如 我有两个URL部门/2/团队和部门/3/团队 2和3是我用match.params.id获取的部门id。当我点击第一个部门链接时,它会显示该团队的信息。但是我点击了下一个部门链接URL更改和参数更新,但是团队列表没有更新 我将在componentWillMount方法中获取团队信息。当我在componentWillUpdate/componentDidUpdate中获取团队信息时,它将创建循环。您需要在componentWi

我正在为不同部门的展示团队信息创建通用组件。部门列表是动态创建的,例如 我有两个URL部门/2/团队和部门/3/团队

2和3是我用match.params.id获取的部门id。当我点击第一个部门链接时,它会显示该团队的信息。但是我点击了下一个部门链接URL更改和参数更新,但是团队列表没有更新


我将在componentWillMount方法中获取团队信息。当我在componentWillUpdate/componentDidUpdate中获取团队信息时,它将创建循环。

您需要在componentWillReceiveProps中执行此操作,因为一旦加载组件,在同一页面上更改路由将不会卸载并创建新组件,而只会更改道具,在触发调用之前,确保旧道具和新道具不相同,以避免对API的不必要调用

如何在componentWillReceiveProps中获取旧道具?建议不要使用componentWillReceiveProps,而是使用componentDidMount和componentDidUpdate的组合。组件上的当前道具将是将要更改为新道具的旧道具,在该事件中作为参数newProps获得的新道具