尝试在React中将新元素添加到数组状态时出错

时间:2019-09-17 04:19:57

标签: javascript reactjs

我是React的新手,想将新数据添加到数组状态,但是遇到错误:

  

期望了一个赋值或函数调用,而是看到了一个表达式

 getTitle(title) {
    axios
      .get(
        `http://api.openweathermap.org/data/2.5/forecast?q=${title}&APPID=7ad09d078633b652ecef8587a337639e&units=metric`
      )
      .then(res => {
        // this.setState({ title: res.data.city });
        this.setState(prevState => {
          title: [...prevState.title, res.data.list]; //Here I get the error
        });
      });
  }

2 个答案:

答案 0 :(得分:2)

setState需要返回一个代表新状态的对象。最快的解决方法是将该箭头函数的主体括在括号中:

this.setState(prevState => ({
  title: [...prevState.title, res.data.list],
}));

现在它正在返回一个json对象

答案 1 :(得分:1)

我认为您忘了回来,试试这个:

this.setState(prevState => ({
    title: [...prevState.title, res.data.list] //Here I get the error
}))