ReactJS-尽管进行了条件检查,但超过了最大更新深度时出错
在我的componentDidUpdate方法中包含以下代码后,我开始出现错误:超出了最大更新深度。。我的目标是在每次更新selectedDate时过滤数组'AppointsByMonth',并使用结果值设置状态。我做错了什么?谢谢你的帮助。提前谢谢ReactJS-尽管进行了条件检查,但超过了最大更新深度时出错,reactjs,Reactjs,在我的componentDidUpdate方法中包含以下代码后,我开始出现错误:超出了最大更新深度。。我的目标是在每次更新selectedDate时过滤数组'AppointsByMonth',并使用结果值设置状态。我做错了什么?谢谢你的帮助。提前谢谢 componentDidUpdate = (prevState) => { const { selectedDate } = this.state; const { appointmentsByMonth }
componentDidUpdate = (prevState) => {
const { selectedDate } = this.state;
const { appointmentsByMonth } = this.props;
if (selectedDate !== prevState.selectedDate) {
this.setState({visibleAppointments: appointmentsByMonth.filter(apt => moment(apt.date).format('YYYY-MM-DD') === moment(selectedDate).format('YYYY-MM-DD'))})
}
}
componentDidUpdate的签名为:
prevState是第二个位置参数,在本例中,您使用的是prevProps
问题是,您正在更新一个条件中的状态,而这个条件每次都被证明是真的,它会导致无限循环
componentDidUpdate(prevProps, prevState, snapshot) {}
componentDidUpdate = (prevProps, prevState) => {
const { selectedDate } = this.state;
const { appointmentsByMonth } = this.props;
if (selectedDate !== prevState.selectedDate) {
this.setState({visibleAppointments: appointmentsByMonth.filter(apt => moment(apt.date).format('YYYY-MM-DD') === moment(selectedDate).format('YYYY-MM-DD'))})
}