react 父组件数据修改,子组件拿值更新

3,324 阅读1分钟

当props的roomThingId 改变时,子组件的getDerivedStateFromProps重新拿值

// 该方法返回等于this.setState(),该方法会被频繁触发...
    static getDerivedStateFromProps(newProps, oldProps) {
        if (newProps.roomThingId !== oldProps.roomThingId) {
            return {
                ...oldProps,
                roomThingId: newProps.roomThingId,
            }
        }
        return null;
    }

    componentDidUpdate(prevProps) {
        if (this.state.roomThingId !== this.props.roomThingId) {
            console.log('换参数了,要重置部分参数了!prevProps:',prevProps)
            console.log('换参数了,要重置部分参数了!state:',this.state)
            this.setState( {
                roomThingId: this.props.roomThingId
            })
        }
    }