shouldComponentUpdate():返回undefined而不是布尔值。

时间:2018-06-14 11:16:00

标签: reactjs

在有人将此标记为副本之前,我已经完成了这个问题 ReactJS Warning: Thumbnails.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false并且它没有回答我的问题(或者我无法得到它(至少可以说)

所以这是我的代码

  shouldComponentUpdate(nextProps, nextState) {
    console.log(this.props.order, nextProps.order)
    if (nextProps.order !== this.props.order) {
      return true;
    }
  }

这里当我检查控制台登录chrome时,它会抛出一个警告

  

shouldComponentUpdate():返回undefined而不是boolean   值。确保返回true或false

但是一切都按照预期(或我想要的方式)工作,当我做像

这样的事情时
shouldComponentUpdate(nextProps, nextState) {
    console.log(this.props.order, nextProps.order)
      return nextProps.order !== this.props.order
  }

它不会抛出错误。

[问题] 为什么我会收到警告?当我明显回归真实的时候?

3 个答案:

答案 0 :(得分:4)

您在第一种情况下收到错误 因为你没有归还任何东西 if(nextProps.order == this.props.order)。 所以,你可以做到这一点:

  shouldComponentUpdate(nextProps, nextState) {
    console.log(this.props.order, nextProps.order)
    if (nextProps.order !== this.props.order) {
      return true;
    }
    return false; //this is the missing piece
  } 

答案 1 :(得分:1)

在第二个版本中,它肯定会返回 true false 。但是在您的第一段代码中,您没有指定其他,它可以是 true undefined ,因此您会收到警告

答案 2 :(得分:0)

nextProps.order !== this.props.order为false时,shouldComponentUpdate函数不会在if with return中输入并返回undefined。

shouldComponentUpdate只想返回布尔值。

尝试第二种方式返回真假。