亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將新元素插入空的 JSON 對象

將新元素插入空的 JSON 對象

aluckdog 2021-05-31 13:28:52
我正在嘗試將數據插入一個空的 JSON 數組,但遇到了問題。我在構造函數中定義數組,然后在頁面加載時向后端發出幾個 get 請求,在獲得響應后,我想將新的數組元素添加到現有元素中。這是我正在使用的代碼:constructor() {        super();        this.state = {            sds: []        }    }    componentDidMount() {      axios.get('/userData', {          params: {              user: this.props.auth.user.name          }      }).then(res => {        for(var i=0; i<res.data[0].chemID.split(',').length; i++){          if(res.data[0].chemID.split(',')[i] != 0){              axios.get('/chemData', {              params: {                id: res.data[0].chemID.split(',')[i]              }             //This is where I want to insert the data            }).then(res => this.sds += ({              id: i,              title: res.data[0].chemName,              selected: false,              key: 'sds'            }))          }                  }      })  }
查看完整描述

3 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

+=不是那樣工作的。使用擴展運算符復制數組的先前內容,然后手動添加新對象 -


}).then((res) => {

  const newThing = {

    id: i,

    title: res.data[0].chemName,

    selected: false,

    key: 'sds'

  };


  this.setState(prevState => ({

    sds: [...prevState.sds, newThing]

  }))

}

你永遠不應該嘗試自己改變狀態,總是使用setState. 在這種情況下,您可以傳遞一個函數作為第一個參數,它提供以前的狀態。這樣,您可以確保this.state.sds保留所有內容,并將新對象添加到該數組中。


查看完整回答
反對 回復 2021-06-03
?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

您可以嘗試使用下一個示例:


this.state.sds[this.state.sds.length] = {

          id: i,

          title: res.data[0].chemName,

          selected: false,

          key: 'sds'

        }

[編輯]


就像@larz 所說的那樣,您必須使用 setState 方法來避免代碼的意外結果。


var newSds = this.stage.sds;

newSds[newSds.length] = {

      id: i,

      title: res.data[0].chemName,

      selected: false,

      key: 'sds'

    };

this.setState({ sds: newSds});

你可以得到有關反應生命周期的詳細信息在這里和“狀態更新被合并”在這里


查看完整回答
反對 回復 2021-06-03
  • 3 回答
  • 0 關注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號