有没有办法在变量(状态)上调用方法。 如何获取List哪些组件发生了变化?
componentDidUpdate(prevProps, prevState) {
const {ID} = this.state
if (this.ID !== this.previousID || this.cmbID !== this.previoudcmbID) {
if(this.ID !== undefined && this.cmbID !== undefined)
{
this.reload3();
// console.log(this.prevProps)
console.log(this.state.settings[0])
console.log(this.prevState.settings[0])
}
}
this.prevState = this.state;
}
答案 0 :(得分:2)
如果您使用this.setState({value:“newValue”}),您可以使用其他形式
this.setState({},callback),其中回调将在状态更新后具有新值,并且您可以以更优雅的方式以某种方式处理它。 下面的伪代码
{{1}}
答案 1 :(得分:1)
您无需维护prevState
,如果需要监控的变量处于状态或道具状态,您可以使用componentDidUpdate
生命周期挂钩来执行相同的操作
componentDidUpdate(prevProps, prevState) {
const {ID, cmbID} = this.state
const {ID: prevId, cmbID: prevCmbId} = prevState;
if (ID !== prevId || cmbID !== prevCmbId) {
if(typeof ID !== 'undefined' && typeof cmbID !== 'undefined')
{
this.reload3();
console.log(prevProps)
console.log(this.state.settings[0])
console.log(prevState.settings[0])
}
}
}
答案 2 :(得分:0)
终于解决了
componentDidUpdate(PrevProps, prevState){
if(this.state.cmbID !== prevState.cmbID){
this.reload2()
}
if(this.state.ID !== prevState.ID){
this.reload3()
}
}