Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我对对象进行动态分解时,React返回时出现意外的令牌错误_Javascript_Reactjs_Dynamic_Destructuring - Fatal编程技术网

Javascript 当我对对象进行动态分解时,React返回时出现意外的令牌错误

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

我正在用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;
  } )

  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);
};```