在有人将此标记为副本之前,我已经完成了这个问题 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
}
它不会抛出错误。
[问题] 为什么我会收到警告?当我明显回归真实的时候?
答案 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只想返回布尔值。
尝试第二种方式返回真假。