先前未进入组件的道具将在反应中获得道具功能

时间:2020-10-06 06:02:10

标签: reactjs

我尝试比较上一个道具和新道具,如果不一样,则更新状态。 但是我每次都得到空的上一个道具

componentWillReceiveProps = (props, prevProps) => {

     if (
        props.data.length > 0 &&  
        props.data !== prevProps.data 
    ) { 
        
      this.setState({
        data: props.data
      }); 
    }
}

道具更改时,我需要比较新旧道具,如果新旧道具不相同,则需要更新状态。

3 个答案:

答案 0 :(得分:0)

我建议您使用React Hook。它是功能强大的库,可以处理先前值和当前值中的状态和道具。

https://pypi.org/project/PyAutoGUI/

BR

答案 1 :(得分:-1)

阅读有关componentWillReceiveProps的文档。此方法仅提供1个参数-nextProps

答案 2 :(得分:-1)

为回答您的原始问题,不建议使用componentWillReceiveProps已有一段时间。理想情况下,您使用https://reactjs.org/docs/react-component.html#static-getderivedstatefromprops来实现您在这里所做的事情。尽管应谨慎使用,但我仍然很难理解为什么要复制这样的状态。

您还可以执行componentDidUpdate(prevProps),然后将this.props用作当前值。

我有一段时间没有使用基于类的组件了。我现在使用钩子。