【发布时间】:2016-04-05 13:21:16
【问题描述】:
我有一个匹配 /roles/:id 之类的 Route 并呈现到右侧窗格中(见下文)。我正在使用@connect 将一些道具和动作传递到我的组件中,其中一个动作根据componentWillMount 钩子中的路由参数id 获取一些数据。
我的问题是我想不出一种干净的方法来确保当用户单击右侧列表中的不同实例时,从而更改路由(但不是卸载/安装组件!),操作再次被解雇。
我曾想过连接到componentWillReceiveProps,但显然这会创建一个无限渲染循环。我在这里遗漏了什么吗?
【问题讨论】:
-
为什么连接到
componentWillReceiveProps会创建一个无限循环?您只需检查路由参数是否已更改:if (this.props.routeParam !== nextProps.routeParam) fetchData(nextProps.routeParam) -
@vonD 在第一次渲染页面加载时失败
-
在第一次渲染时,您可以像以前一样使用
componentWillMount
标签: reactjs react-router redux react-redux