替换先前的对象数组每次都会添加新元素

时间:2018-12-11 05:56:38

标签: javascript reactjs redux react-redux

我是react jsRedux的新手。在这里,我有一个对象数组,例如,

const initialState = {
    Low: [
        {
            id: 0,
            type: '',
            count: '',
            allowded: 6,
            level: 'EASY'
        }
    ],
    Medium: [
        {
            id: 0,
            type: '',
            count: '',
            allowded: 7,
            level: 'MEDIUM'
        }
    ],
    High: [
        {
            id: 0,
            type: '',
            count: '',
            allowded: 7,
            level: 'TOUGH'
        }
    ]
}

这是在减速器中。

现在,我有一个onChange函数,它实际上会更改此数组中的值。

onChange(event, tobeupdated, id, type, noc, data) {
   let newData = { ...this.props.data };
    if (newData) {
      let data = newData[type].map((object, index) => {
        if (object.id === id) {
          object[tobeupdated] = event.target.value;
          const tobeData = newData[type];
         this.props.updateLowLevel({tobeData, type}).then(() => {
            let criteria_filled = this.disableAddbutton({ ...this.props.data }, type);
            addedRow = `new${type}RowAdded`;
            this.setState({
              [addedRow]: criteria_filled ? true : false
            })
});
}

由此,我正在更新该对象的值。取决于类型。

现在,在动作创建者中,

return (dispatch) => {
    dispatch({
      type: QUIZ_DATA,
      data: tobeUpdated,
    });
    return Promise.resolve();
  }
}

在我的减速器中,我正在更新它,

 case QUIZ_DATA:
            return {
                ...state,
                [action.data.type]: [action.data.tobeData],
                error: false,
            }

现在,在这里,当我更改type然后将对象数组添加到该数组时,会发生什么,但是当我尝试更改diff键的时间是什么时候,

在对象数组中,元素中又添加了一个obj。所以,因此,我无法正确获得该渲染。

有人可以帮我吗?

0 个答案:

没有答案