繁体   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