Reactjs 使用相同的 ID 保存和更新相同的用户信息
Reactjs save and update the same user info with the same ID
这是我的User Settings page。
我创建了一个用于保存和编辑信息的按钮。
我希望在第一次保存信息后,应用程序会注册用户 ID 以更新信息,而不是在数据库中创建新行。
在沙箱中您找到了我编写的代码,但它不起作用。在沙盒中它不起作用,因为显然没有后端,但这不是我指的错误。我认为问题出在“服务”文件夹和这段代码中:
if (info.id === null) {
InfoDataService.create(data)
.then((response) => {
console.log('create', response.data);
setInfo({
id: response.data.id,
email: response.data.email,
firstname: response.data.firstname,
lastname: response.data.lastname
});
})
.catch((e) => {
console.error(e);
});
} else {
InfoDataService.update(info.id, data)
.then((response) => {
console.log(response);
setInfo({
id: response.data.id,
email: response.data.email,
firstname: response.data.firstname,
lastname: response.data.lastname
});
console.log(response.data);
})
.catch((e) => {
console.error(e);
});
}
};
像这样的东西应该可以工作:https://codesandbox.io/s/patient-glade-3z67y?file=/src/UserInfo.js
我在 infoService.js 中嘲笑了你的 API 所以它至少会做一些事情,但你应该能够删除这些行并且它会在本地为你工作。
希望这能为您指明正确的方向!
这是我的User Settings page。
我创建了一个用于保存和编辑信息的按钮。
我希望在第一次保存信息后,应用程序会注册用户 ID 以更新信息,而不是在数据库中创建新行。
在沙箱中您找到了我编写的代码,但它不起作用。在沙盒中它不起作用,因为显然没有后端,但这不是我指的错误。我认为问题出在“服务”文件夹和这段代码中:
if (info.id === null) {
InfoDataService.create(data)
.then((response) => {
console.log('create', response.data);
setInfo({
id: response.data.id,
email: response.data.email,
firstname: response.data.firstname,
lastname: response.data.lastname
});
})
.catch((e) => {
console.error(e);
});
} else {
InfoDataService.update(info.id, data)
.then((response) => {
console.log(response);
setInfo({
id: response.data.id,
email: response.data.email,
firstname: response.data.firstname,
lastname: response.data.lastname
});
console.log(response.data);
})
.catch((e) => {
console.error(e);
});
}
};
像这样的东西应该可以工作:https://codesandbox.io/s/patient-glade-3z67y?file=/src/UserInfo.js
我在 infoService.js 中嘲笑了你的 API 所以它至少会做一些事情,但你应该能够删除这些行并且它会在本地为你工作。
希望这能为您指明正确的方向!