从const变量导入时,Spread Operator无法正常工作

时间:2019-08-21 07:36:18

标签: reactjs ecmascript-6 import export

在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);

都是相同的

1 个答案:

答案 0 :(得分:4)

这是正常现象,因为您保留引用。因此,如果您在权限内更改一个对象,它也会更改菜单中的一个对象,因为它们位于同一内存引用中。 如果您要更改权限而不触摸菜单,也许应该在权限内使用deepClone菜单。