Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用React中的数组键在状态对象上迭代循环_Javascript_Arrays_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 使用React中的数组键在状态对象上迭代循环

Javascript 使用React中的数组键在状态对象上迭代循环,javascript,arrays,reactjs,ecmascript-6,Javascript,Arrays,Reactjs,Ecmascript 6,我有一个函数getBar()返回如下对象: { foo: 'value', array: ['a', 'b', 'c'] } 下面是我的React组件调用上述函数,即getBar(): 类foo扩展组件{ 状态={ 条:{} }; componentDidMount(){ 这是我的国家({ bar:getBar() }); } render(){ {this.state.bar.array.map((value,i)=>{value}} } } 它总是给我未捕获类型错误:无法

我有一个函数
getBar()
返回如下对象:

{
  foo: 'value',
  array: ['a', 'b', 'c']
}
下面是我的React组件调用上述函数,即
getBar()

类foo扩展组件{
状态={
条:{}
};    
componentDidMount(){
这是我的国家({
bar:getBar()
});
}
render(){
{this.state.bar.array.map((value,i)=>{value}}
}
}
它总是给我
未捕获类型错误:无法读取未定义的属性“map”
错误,我开始知道我必须声明一个空的状态数组,我用不同的方法声明了它,但是没有一个有效。谁能给我一个合适的答案,最好是逻辑完整的


我尝试了另一种方法,在
render()
中将状态数组声明为
const
,但没有得到成功的结果。

好的,这实际上与您的

问题在于
render
方法在
componentDidMount
方法之前运行。因此,组件第一次呈现状态时如下所示:

{
  bar: {},
}

所以在条上没有数组属性,这意味着你不能映射到它上面(这就是为什么你会出错的原因,非常感谢!!我从一个小时以来一直在尝试不同的调整,但是使用
componentWillMount
工作得非常完美。
{
  bar: {},
}