PUT请求不会更新数据| React,Redux

时间:2017-09-05 20:55:53

标签: reactjs redux react-redux axios

在我的数据库中,我有一个名为lock的对象。目前,你可以(几乎,我以某种方式打破它)用我的axios put请求更新锁定设置。但是在lock对象中有一个名为controller的键,它有一个objectId。我还有另一个名为controller的对象,其中包含我需要能够更新的内容(来自相同的put请求)。

我确保我将正确的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 个答案:

没有答案