簡體   English   中英

setstate object:{array:[]} in reactjs 如何在 state 對象**中的數組中添加**鍵和值?

[英]setstate object:{array:[]} in reactjs how could i add the **key and value inside the array which is in the state object**?

state object 中的數組內的鍵和值

this.state = { 頻率:{ 天:[],開始日期:“”,自定義日期:“”},};

如何在 days 數組中添加關鍵廣告值?

您可以使用setState修改您的 state,如下所示:

this.setState({frequency: {...this.state.frequency, days: [...this.state.frequency.days, day]}});
function addKeyValue(key, value) {

  this.setState(state => ({
    ...state,
    frequency: {
       ...state.frequency,
       days: [...state.frequency.days, {[key]: value}]
    }
  })
}

- 編輯

刪除密鑰有點棘手。

function removeKeyValue(key, value) {

  this.setState(state => {
    const days = state.frequency.days;
    const dayIndex = days.findIndex(pr => pr[key] === value);
    const day = {...days[dayIndex]};
    delete day[key];

    return {
      ...state,
      frequency: {
         ...state.frequency,
         days: [...days.slice(0, dayIndex),
            day,
            ...days.slice(dayIndex + 1)]
      }
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM