关于react 父级组件更新数据触发子组件更新渲染问题

这个问题,困扰了我,特此记录。

子组件显示父组件传来的props 做更新有 以下2种常用方式:

1.直接使用

class Child extends Component {
    render() {
        return <div>{this.props.someThings}</div>
    }
}

这种方式可以直接在子组件中使用,方便快捷,父组件的更新的数据直接影响子组件的值。

2.转换成自己的state

    class Child extends Component {
      constructor(props) {
        super(props);
        this.state = {
          someThings: props.someThings
        };
      }
      componentWillReceiveProps(nextProps) {
        this.setState({someThings: nextProps.someThings});
      }
      render() {
        return <div>{this.state.someThings}</div>
      }
    }

自己在构造函数中初始化一个值,在将 status 通过 componentWillReceiveProps 生命周期方法 更新

自己喜欢用的是第二种,看起来易维护,代码结构清晰

但是,我遇到一个问题,是在渲染第一次是正常的,之后怎么也不做渲染了

后面发现了,是无意间使用了 提升react加载性能的 shouldComponentUpdate方法,该方法会阻止 states 的重新渲染

无状态的函数声明组件,如何实现呢,正在解决中。。。

posted @ 2021-08-02 15:14  雪莉06  阅读(2636)  评论(1编辑  收藏  举报