【发布时间】:2021-04-21 16:54:27
【问题描述】:
我正在制作一个 React-Native 应用程序。感谢大家的帮助,除了切换“是”和“否”之外,我可以以某种方式完成这项工作。一旦用户单击一个按钮,我只想检查该单击的项目数据是否已经存在于该状态中,如果是,我想更新它。如果它不存在,则应将其作为新项目添加到状态中。
我已经编写了上述逻辑,我的代码正在运行,但没有返回正确的输出,元素没有正确添加或更新到状态数组。如何修复此代码?
我想生成这样的输出
[{
chelistid:231,
validiary : "YES",
remark : "Hello"
},{
chelistid:232,
validiary : "NO",
remark : "asddddd"
}]
我的代码
const [reqData, setReqData] = useState([]);
//Modify yes clicked
const yesClicked = (element) => {
let req = {
"chelistid": element.chelistid,
"validiary": "Yes",
"remark": element.remark
}
createCheckList(req);
}
//Modify no clicked
const noClicked = (element) => {
let req = {
"chelistid": element.chelistid,
"validiary": "No",
"remark": element.remark
}
createCheckList(req);
}
const createCheckList = (data) => {
const index = reqData.findIndex(x => x.chelistid === data.chelistid)
var modifiedArray = reqData
if (index !== -1) {
//Remove the element from the array
modifiedArray.splice(index, 1);
}
setReqData([modifiedArray, data]);
}
【问题讨论】:
标签: arrays react-native ecmascript-6 setstate