附加到状态数组并添加额外的对象键

时间:2018-03-15 22:58:10

标签: javascript reactjs state

对不起,如果标题不是很好,但我想要做的是:

  componentDidMount() {
      axios.get('http://thecatapi.com/api/images/get?format=xml&results_per_page=9')
      .then((response) => {
        parseString(response.data, (err, result) => {
          result.response.data[0].images[0].image.map((cat) => this.setState({ cats: this.state.cats.concat(cat) }))
        })
      });
    }

这个函数,从catapi中拉出来,然后将我的cat状态数组的状态设置为每个cat对象。每个cat对象都有来自cat api的3个键,如何为每个数组对象添加一个名为likes的额外键?

我正在想类似的事情:

this.setState({ cats: this.state.cats.concat(cat), likes: 0 })

但很明显,这样做了

谁有任何想法?

2 个答案:

答案 0 :(得分:0)

啊做完了

只需要像这样添加它:

result.response.data[0].images[0].image.map((cat) => (                
    cat.likes = 0,
    this.setState({ cats: this.state.cats.concat(cat) }))
)

答案 1 :(得分:0)

.map()返回一个数组,我相信这意味着你要返回一个调用setState的项数组。在没有看到整体逻辑的情况下,我无法确定您正在做什么,但我可能会获取数据,将其映射到新的对象数组,在地图中添加密钥,最后使用新映射的数组进行setState。