我正在react-router-redux
与 一起使用redux
,react-router
并且react
在这个 repo 中一切都运行良好:
https://github.com/justsayno/redux-react-introduction-code/tree/issue-branch
(查看分支issue-branch
以重现我的问题)
我已经将react-router
状态集成到我的 redux 状态中react-router-redux
,并且可以成功地使用 mapStateToPropsemployeeId
从道具中获取我需要的路由器参数,如下所示:
(以下内容来自该文件)
const mapStateToProps = (state, ownProps) => ({
employeeId : ownProps.params.employeeId,
employee: state.selectedEmployee.item,
hasLoaded: state.selectedEmployee.hasLoaded,
hasError: state.selectedEmployee.hasError,
error: state.selectedEmployee.error
})
在我的渲染函数中console.log(
,employeeId 是 ${this.props.employeeId} )
,当我路由到该组件并且参数发生变化时,它会发生变化。
但是由于我不明白的原因,当参数更改时这不会触发。
componentWillReceiveProps(nextProps){
console.log(nextProps)
}
我想要实现的是对员工列表与单个员工的不同模拟 API 调用,当employeeId 参数发生更改时,我需要重新检索员工,否则我只能看到其中一名员工。我打算在我的componentWillReceiveProps
函数中执行此操作,检查employeeId 的更改并启动一个操作(如果有的话):
componentWillReceiveProps(nextProps){
const { employeeId, selectEmployee } = this.props
if(nextProps.employeeId !== employeeId){
selectEmployee(nextProps.employeeId)
}
}
我只是接近这个错误吗?