javascript - 我如何在反应中用映射函数内部的扩展替换对象内部的关键选项
问题描述
我有以下代码正在更改 inputType multipleChoice 对象中的选项键的值,主对象称为卡,我需要将状态设置为 newTasksIdsArray
我希望 multipleChoice.options 具有 newArray 值,以便我可以将状态设置为它们
更新:更多信息
我想我想说的是我需要一个变量来 setlocalstroage 最终成为整个对象,并将 optiosn 数组替换为我生成的 newTasksIdsArray 中的任何内容,只是不包括在内,因为它可能不需要
谢谢!
我需要我的最终结果是
[
{
"inputType":"multipleChoice",
"uniId":"bzR7bpwzjMxcBEdSF",
"label":"Preferred Method of Contact",
"value":"2813348004",
"multipleChoice":{
"options":NEW ARRAY GOES HERE
}
},
...
KEEP REST OF OBJECT
]
let test = [];
cards.map((card) => {
if (card.inputType === "multipleChoice") {
//console.log(card);
card.multipleChoice.options = newTasksIdsArray;
test.push(...cards);
}
});
console.log(test);
setCards(test)
//update localstorage with test as well
这是卡片对象
[
{
"inputType":"multipleChoice",
"uniId":"bzR7bpwzjMxcBEdSF",
"label":"Preferred Method of Contact",
"value":"2813348004",
"multipleChoice":{
"options":[
{
"uniId":"gJ8N6sAJrZZvCcPkp",
"label":"Cell Phone",
"checked":false
},
{
"uniId":"Ha9rmssmRkGzpRTn7",
"label":"Email",
"checked":true
}
]
}
},
{
"inputType":"shortText",
"uniId":"AkvioWe6D2ahgDCbW",
"label":"First Name:",
"value":"Kanye",
"multipleChoice":{
}
},
{
"inputType":"phoneNumber",
"uniId":"xwbBBnT2D69QJHHuL",
"label":"Cell Phone Number",
"value":"2813348004",
"multipleChoice":{
}
},
{
"inputType":"email",
"uniId":"62fDs7JtTF4MxMvww",
"label":"Work Email",
"value":"kanye@usa.gov",
"multipleChoice":{
}
},
{
"inputType":"address",
"uniId":"pKAwHmRJKCcKMz8LN",
"label":"Home Address",
"value":"123 White House Avenue",
"multipleChoice":{
}
},
{
"inputType":"dropDown",
"uniId":"K3o689k8G2ZrWEfQc",
"label":"How did you find us?",
"value":"2813348004",
"dropDown":{
"uniId":"3r9gzPXXjidq9p4fw",
"options":[
{
"uniId":"7hGYT4jv89WxFveaj",
"label":"Google"
},
{
"uniId":"J2K2W6P4BR7ZEGEao",
"label":"Referral"
}
]
},
"multipleChoice":{
}
}
]
解决方案
我猜卡片状态已经通过重新分配 map 函数中的值来更新,所以这可以很好地存储到 localstorage
cards.map((card) => {
if (card.inputType === "multipleChoice") {
card.multipleChoice.options = newTasksIdsArray;
}
});
window.localStorage.setItem("inputs", JSON.stringify(cards)
推荐阅读
- google-cloud-platform - Google Cloud 平台中的 Devops 项目管理板
- java - 在 Android 中使用 base64 字符串创建 JSONObject 时遇到致命异常
- python - Python XPath 排除项目
- r - AWS 多因素身份验证和闪亮服务器
- javascript - 如何避免/删除 .row 中的空格
- github - 在 GitHub 上的 Markdown 文件中应用颜色
- excel - 将不同文件夹中的单元格总和复制到摘要表中
- ansible - 过滤:ansible 中 group_names 中的子组名称
- java - 如何在android中的图像上显示动画
- reactjs - 带有自定义类的 Ref - reactdate 选择器