什么时候打印出的 nextProps.content 和 this.props.content 才能不相等呢?每次运行时显示这两个值是相等?

来源:4-9 React 生命周期函数的使用场景

兜兜20

2020-10-27

在 TodoItem 组件中,有下面的函数,
shouldComponentUpdate(nextProps, nextState) {
console.log(‘nextProps’, nextProps.content)
console.log(‘thisProps’, this.props.content)
if (nextProps.content !== this.props.content) {
console.log(‘true’)
return true;
} else {
console.log(‘false’)
return false;
}
}

每次打印出的 nextProps.content 和 this.props.content 都是相等的,return false,后面就不会再继续执行 render 函数渲染。
什么时候这两值是不相等的,从而执行 render 函数进行渲染呢?

写回答

4回答

Lemon_1013

2021-09-07

可以了 怀疑是缓存的问题吧

0
0

Lemon_1013

2021-09-07

我也是啊 一直都是true

//img.mukewang.com/szimg/613730dc095e214205150148.jpg

0
0

慕码人7077953

2020-11-27

//@Dell 子组件shouldComponentUpdate代码如下

shouldComponentUpdate(nextProps, nextState){
    var isUpdate = false
    console.log(this.props.Todoitem)
    console.log(nextProps.Todoitem)
    if(this.props.Todoitem !== nextProps.Todoitem){
      console.log('new content to update')
      isUpdate = true
      }
    else{
      console.log('no new content')
      isUpdate = false
      }
    return isUpdate
    }


0
0

Dell

2020-10-31

这个你只需要让父组件调用子组件的时候,改变下传递给子组件的参数,就能模拟出 props 不相等的情况了。

0
4
qq_慕桂英3297117
老师,我也遇到了相同情况,都是相同的值
2021-02-14
共4条回复

React零基础入门到实战,完成企业级项目简书网站开发

主流新技术 React-redux,React-router4,贯穿基础语法

5275 学习 · 2496 问题

查看课程