ReactJS警告:Thumbnails.shouldComponentUpdate():返回undefined而不是布尔值。确保返回true或false

时间:2017-07-27 12:55:24

标签: reactjs

我在我的shouldComponentUpdate方法中执行条件,如果条件匹配返回true,则返回false ...但是我仍然得到一个"返回undefined而不是布尔值..."正如标题所示。

这是我的方法:*请注意,如果我没有setTimeout,它会自动假定nextProps.props.length为0,即使它超过0

shouldComponentUpdate(nextProps){
    setTimeout(()=>{
        console.log(nextProps.props, nextProps.props.length);
        if(nextProps.props.length > 0){
            return true;
        }else{
            return false;
        }
},1000)
}

1 个答案:

答案 0 :(得分:1)

您的组件道具实际上存储在nextProps参数中。您似乎正试图访问props中的nextProps,这显然看起来很可疑。

如果您真正想要实现的目标,那么您永远不应该将组件的支柱命名为props。为您的组件道具提供更具描述性的名称。

此外,shouldComponentUpdate中的表达式可以简化为:

shouldComponentUpdate(nextProps){
    return nextProps.props.length > 0; // assuming nextProps.props is an array
}

此外,您应该发布组件的propTypes定义,以便组件的道具合同清晰。