Запрос PUT не обновляет данные | Реакт, Редукс

В моей базе данных у меня есть объект с именем lock, В настоящее время вы можете (почти как-то сломал) обновить настройки блокировок с помощью моего запроса axios put. Но в lock объект есть ключ под названием controller который имеет objectId. У меня также есть еще один объект под названием controller который содержит материал, который мне нужно иметь возможность обновлять (из того же запроса).

Я убедился, что я правильно lock с правильным controller, но я не могу получить мою просьбу о сдаче на работу.

В моем приложении React у меня есть это (item = lock | I need to rename it):

<DoorSettingsForm
  onSubmit={updateSettings}
  item={location.state.door}
  id={location.state.door._id}
  controller={location.state.controller}
/>

DoorSettingsForm Компонент принимает три реквизита, один из которых является функцией, updateSettings, В той же папке у меня есть это:

const mapDispatchToProps = dispatch => {
  return {
    updateSettings: (id, item, controller) =>
      dispatch(updateSettings(id, item, controller))
  }
}

И мои действия:

export function updateSettings(id, updatedValues) {
  return (dispatch, getState) => {
    const state = getState()
    let item
    state.fetchDoors.doors.forEach(val => {
      if (val._id === id) item = val
    })
    const payload = { item: merge({}, item, updatedValues) }
    axios
      .put(`${settings.hostname}/locks/${id}`, payload.item)
      .then(res => {
        console.log('updatedValues', updatedValues)
        dispatch({
          type: 'SETTINGS_UPDATED',
          payload
        })
      })
      .catch(err => console.log(err))
  }
}

Сейчас, когда я пытаюсь отправить этот запрос, я получаю только id блокировки, но не другие значения, которые я хочу. Когда я console.log('updatedValues', updatedValues) Я вижу все значения, которые я изменил. Так что мне интересно, что не так с моими действиями?

Спасибо за прочтение!

0 ответов

Другие вопросы по тегам