Заменить предыдущий массив объектов, добавляя новый элемент каждый раз - PullRequest
0 голосов
/ 11 декабря 2018

Я новичок в react js и Redux.Здесь у меня есть массив объектов, который похож на

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-раз, то, что он делает,

В массиве объектов, еще одинобъект добавляется в элемент.Так что из-за этого я не могу получить этот рендер должным образом.

Может кто-нибудь помочь мне с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...