SetState与对象的Json Response数组为空的数组?

时间:2018-09-28 07:46:47

标签: reactjs

我已经将一个数组的状态设置为[]空,在componentDidMount中,我正在获取API响应。.现在我想使用新的json响应数组来设置空数组的状态,我该怎么做?

constructor(props)
{
    super(props)
    this.state = {
        categoryList : []
    }
}
componentDidMount()
{

    axios.get('http:xxxxxxxxxxxxxxxxxxxxxxx')

    .then(res => 
    {
        this.setState = {
            categoryList : res.data.body.category_list(json path)
        }
    })
    .catch(function(error) {
        console.log('Error on Authentication' + error);
    })
}

2 个答案:

答案 0 :(得分:1)

尝试一下:

 this.setState({
    categoryList : res.data.body.category_list(json path)
 })

因为setState()方法接受将与当前状态合并的对象。

答案 1 :(得分:1)

您需要在这里了解两件事

以下功能用于使用初始值初始化状态

bysort category: list difference if _n == _N

-> category = a

     +------------+
     | difference |
     |------------|
  3. |        .67 |
     +------------+

-> category = b

     +------------+
     | difference |
     |------------|
  3. |      14.67 |
     +------------+

-> category = c

     +------------+
     | difference |
     |------------|
  3. |     104.67 |
     +------------+

要修改categoryList状态或任何其他状态变量,您需要使用setState方法,如下所示。请记住setState是一种方法

bysort category: generate results = difference if _n == _N