反应静态getDerivedStateFromProps:状态之后出现道具

时间:2018-09-17 06:48:44

标签: javascript reactjs

是正确的,道具在改变状态后出现了吗?如果我单击按钮,我会调用handleClickOut,然后在getDerivedStateFromProps中做一些比较,在第一行if (Object.keys(props.current).length !== 0 && state.open)中我有一个新的状态clickedAway: true,但道具没有改变(我改变了并在其他组件中发送道具),然后状态返回到clickedAway: false,并在下一周期更改道具。

    static getDerivedStateFromProps(props, state) {
        if (Object.keys(props.current).length !== 0 && state.open) {
            return {
                current: props.current,
                loading: false,
                clickedAway: false
            }
        } else if (!state.clickedAway && Object.keys(props.current).length === 0) {
            return {
                current: state.current
            }
        } else {
            return {
                current: {}
            }
        }
    }
    
    handleClickOut = () => {
        this.setState({
            clickedAway: true
        })
    }

0 个答案:

没有答案