react的state和componentWillMount

我设置了一个state,然后在componentWillMount的时候调用了一个函数,这个函数里有一个fetch通过回调来修改state,但是我这里却设置不了state。请问是什么问题。

图片描述

图片描述


如果在下面return的话,我依旧读取不到res的值

图片描述

图片描述

阅读 3.7k
1 个回答

因为你是在render中使用 res.list 这个数组来渲染数据,但是在fetch结果没过来之前,res.list 是个null,所以报错了。你在初始化state的时候,把res.list设为一个空的array即可,如下:

this.state = {
    res: {
        list: []
    }
}

还有,react在遍历数组的时候,会建议设置一个key来区分数组的每个元素,在render的时候加上key,如下:

{
    res.list.map((item, index) => {
        return (
            <Card key={ index } >
                <img .... />
            </Card>
        )
    })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题