我有一个像这样编写的无状态组件
//stateless component
const ComponentOne = ({ month }) => {
console.log(month); // print incremental of 1 when I render parent component
}
并从其父级传递月份。
render(){
return(
<ComponentOne month={ month }/>
)
}
它是父母我可以改变月份并将其传递下去。如何在父母每次渲染后检查月份是否不同?使用componentWillRecieveProps?但该组件已成为无状态组件。
答案 0 :(得分:0)
必须使用哑组件才能进行渲染,并且应该处理主组件中的所有逻辑。
您可以在父组件的功能中验证月份,或者您可以将另一个道具传递给哑组件,该组件将是月份道具的先前值,然后将其比较为
const ComponentOne = ({ month, prevMonth }) => {
if(month != prevMonth) {
//do what you want here
}
console.log(month); // print incremental of 1 when I render parent component
}
render(){
return(
<ComponentOne month={ month } prevMonth={this.state.prevMonth}/>
)
}