组件不显示,不确定原因

时间:2016-03-01 22:04:14

标签: reactjs

当长度为0时,下面的条件将显示postItems函数的结果,但不显示NoPostsExists组件的结果。

The condition:   {posts.length == null ? <NoPostsExists /> : this.postItems()}

未显示的帖子:

NoPostsExists = React.createClass({
    render(){
        return (
        <div className="container"> No posts.. No posts.. No posts.. No posts.. No posts.
    No posts.. No posts.. No posts.. No posts.. No posts.
    No posts.. No posts.. No posts.. No posts.. No posts.
. </div>
  ) 
 }
});

2 个答案:

答案 0 :(得分:1)

Array#length是一个数字。将posts.lengthnull进行比较毫无意义。您想将其与零(0)进行比较。

此外,我建议始终使用三等号(===)而不是双等号(==)进行比较。 Double equals有一些令人惊讶的边缘情况可能会让你失望。

答案 1 :(得分:0)

@David为您提供了正确的解决方案。

另一个更好的方法是不要比较!并将三元运算符重写为:

posts.length ? <NoPostsExists /> : this.postItems()

因为在布尔值中0被认为是假的,所以它可以正常工作。