Javascript 当我对对象进行动态分解时,React返回时出现意外的令牌错误
我正在用React中的onChange事件更新输入字段Javascript 当我对对象进行动态分解时,React返回时出现意外的令牌错误,javascript,reactjs,dynamic,destructuring,Javascript,Reactjs,Dynamic,Destructuring,我正在用React中的onChange事件更新输入字段 const handleUpdateText = (id, name, text) => { const newItems = items.map( item => { if (item.id === id) { return {...item, [menuLang][name]:text } // <-- error here at ][ } return item; } ) setIt
const handleUpdateText = (id, name, text) => {
const newItems = items.map( item => {
if (item.id === id) {
return {...item, [menuLang][name]:text } // <-- error here at ][
}
return item;
} )
setItems(newItems);
}
无需动态分解,即可正常工作:
const newItem = {...item}
newItem[menuLang][name] = text;
return newItem;
// instead of: return {...item, [menuLang][name]:text }
你知道错在哪里吗?我不认为这里有错,但我也不认为你想通过解构来做什么-我认为你必须按照第二个例子的思路来做。使用
let item={id:1,键入:“menuitem”,isVisible:!0,en:{name:“沙拉”,desc:“新鲜,季节性配料”},price:“10”};
console.log(项目)
让name='name'
让text=“橙色”
让menuLang='en'
item={……item[menuLang]:{……item[menuLang],[name]:text}
console.log(item)
所以我只是错误地分解了一个嵌套对象?是的,你没有正确地分解。
const newItem = {...item}
newItem[menuLang][name] = text;
return newItem;
// instead of: return {...item, [menuLang][name]:text }
const items = [{id:12,name: 'dj' }];
const handleUpdateText = (id = 12, name='ann', text='sample') => {
const newItems = items.map((item) => {
const obj = {...item};
if (item.id === id) {
return {...obj, [menuLang]: {[name]:[text]}};
}
return obj;
});
console.log('item', newItems);
};```