如何为react组件定义initialState正确?

时间:2017-07-12 14:24:24

标签: reactjs redux

例如,ArticleList组件,首先没有数据;

状态可能是这样的:



state = {
  articleList: [],
  isFetching: false
}




首先,我希望它渲染为空(null)。

如果我检查isFetching是否为true,则渲染为null。但它也会在isFetching状态下渲染一个加载微调器。

如果我检查articleList.length === 0,则渲染null。但它也希望在该状态下显示一些用户友好的消息。

那么是否应该有一些其他属性来确定初始渲染结果是否为空?

这种情况有没有最好的做法?

2 个答案:

答案 0 :(得分:0)

你可以用    this.state = {}; 初始化状态

然后必须使用文档中描述的this.setState()。

在es6中你可以使用

variable === undefined

variable === null 

检查变量。

答案 1 :(得分:0)

state = {
   articleList : [],
   fetching: false
}
render() {
   const {fetching, articleList} = this.state;
   if(fetching) {
       //show loader here
      return loader;
   }
   if(!fetching && articleList) {
      if(articleList.length === 0) {
       //show message here
       return message;
      }
      //render content here
      return content;
   }
   return null;
}