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: {},
}