在react中导入const值时,我遇到一些奇怪的问题。实际上,我正在导出与
之类的反应无关的const。export const menu = [{
"icon": "si-home",
"path": "dashboard",
"name": "Dashboard",
"key": "0",
"permissionName": ["View"],
"permission": ["off"],
"sub": []
}];
然后从要导入的另一个组件中,使用散布运算符,但是即使我再次要求它们也相同,两个变量也变得相同。我想这与导出导入有关。
import menu from'../../../menu ';
const permissions = [...menu];
//some operation on permissions ....
permissions[0].permission[0] = 'on';
console.log(menu);
console.log(permissions);
都是相同的
答案 0 :(得分:4)
这是正常现象,因为您保留引用。因此,如果您在权限内更改一个对象,它也会更改菜单中的一个对象,因为它们位于同一内存引用中。 如果您要更改权限而不触摸菜单,也许应该在权限内使用deepClone菜单。