所以我想向服务器发出PUT请求,但它不想工作。我知道在发出PUT请求时,您需要资源的标识符(例如id)和要更新的有效负载。这就是我的问题。
在我的表格中,我有这些道具:
<div>
<DoorSettingsForm
onSubmit={this.submit.bind(this)}
item={this.props.location.state.item}
id={this.props.location.state.item._id}
/>
</div>
item
- 所有输入字段,无线电按钮等。
id
- 标识符
onSubmit
- 处理所有新数据提交的函数,在这里:
submit(values, id) {
this.props.updateSettings(values, id)
}
在我真正简单的行动中,我有这个:
export function updateSettings(id, item) {
return dispatch => {
console.log('ID: ', id)
return axios
.put(`${settings.hostname}/locks/${id}`, item)
.then(res => console.log(res))
.catch(err => console.log(err))
}
}
我真的不明白的一件事是当我在第一行更改id
和item
的位置时,我的console.log的输出会发生变化。当id
作为第一个参数时,我会在输入中输入所有内容(更改),并且当item
作为第一个参数时,我会得到这个:
ID: function (action) {
if (action.payload) {
if (!(0, _isPromise2.default)(action.payload) && !(0, _isPromise2.default)(action.payload.promise)) {
return next(action);
}
对我的问题的任何帮助都非常有用!谢谢你的阅读。
答案 0 :(得分:0)
我忘了用我的id调用handleSubmit:
form onSubmit={() => handleSubmit(id, item)}