私は と一緒に使用してreact-router-redux
おりredux
、このレポではすべてがうまく機能しています:react-router
react
https://github.com/justsayno/redux-react-introduction-code/tree/issue-branch
issue-branch
(私の問題を再現するためにブランチを見てください)
react-router
を使用して状態を redux 状態に統合し、react-router-redux
mapStateToProps を正常に使用して、employeeId
次のように小道具から必要なルーターパラメーターを取得できます。
(以下はこのファイルから)
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 パラメータが変更された場合、または従業員の 1 つしか表示されない場合は、従業員を再取得する必要があります。私は自分の関数でこれを行うつもりでしcomponentWillReceiveProps
た。employeeId の変更を確認し、次のようになっている場合はアクションを開始します。
componentWillReceiveProps(nextProps){
const { employeeId, selectEmployee } = this.props
if(nextProps.employeeId !== employeeId){
selectEmployee(nextProps.employeeId)
}
}
私はこれに間違って近づいていますか?