这是我在React中的代码。我有多个getInitialState实例用于不同功能。但是,我发现让它们全部以这种方式运行可能存在问题。

getInitialState: function(){
if (localStorage.getItem('something'))
{return {signedin: true}}
else {return {signedin: false}}
},

getInitialState:function(){
return {error: true}
},

getInitialState:function(){
return {fliphouse: false}
},


解释一下,getInitialState的第二个实例不起作用。也就是说,除非我翻转第二和第三getInitialState的顺序。当我这样做时,代码将按预期运行。但是我感觉到React正在设法告诉我一些事情。

这通常是在组件内组织React代码的方法吗?

最佳答案

您可以在同一对象中全部定义它们:

getInitialState() {
  return {
    signedIn: !!localStorage.getItem('something'),
    error: false,
    fliphouse: false
  };
}


您可以在组件中的任何位置单独更改它们(render()函数除外),例如:

this.setState({ error: true }) // causes a new render

09-11 14:04