我有一个使用react router 4和redux的同构反应应用程序。我有一种情况,我有多个路由使用相同的组件(SectionFront)。该组件连接到redux商店。
我希望每当商店的位置更新时都会调用该组件的componentWillRecieveProps()
,但永远不会调用它。
class SectionFront extends React.Component{
componentWillReceiveProps( nextprops ){
console.log('next props... does not fire on location change');
}
render(){
console.log('Render was called', this.props);
return(
<div>this is the section front</div>
)
}
}
const mapDispatchToProps = {
loadSectionFront
}
const mapStateToProps = (state) =>{
console.log('This is called properly every time after the state changes', state);
return {
sectionFront : state.sectionFront.payload,
isLoading: state.sectionFront.loading,
pathname: state.location.pathname
}
}
export default connect(mapStateToProps, mapDispatchToProps)(SectionFront)
关于为什么componentWillReceiveProps()
没有被触发的任何想法,即使道具正在更新并且仍然调用渲染功能?