【发布时间】:2021-04-26 22:06:05
【问题描述】:
我将一个数组存储在一个 .js 文件中,因为我打算在许多其他文件中使用它。虽然我在其他文件中正确获取了它(通过渲染数组的项目进行检查),但我无法改变数组,因为我需要在数组中添加和删除项目。
这是我的数组所在的文件;
export default myArray = ['first thing', 'second thing', 'and so on'];
这就是我尝试过的;
首先我导入了它;
import myArray from 'path/of/the/file.js'
然后尝试对其进行变异;
myArray = [...myArray , andSomeOtherItem];
这显示一个错误;
myArray is read-only
搜索后,我认为这是 react-native 的默认行为。如果我是对的,那我该如何实现呢?
【问题讨论】:
-
这不是突变!但这是
myArray.push(andSomeOtherItem);或myArray[myArray.length] = andSomeOtherItem; -
变异不是意味着改变数组吗??
-
mutate 意味着改变某些对象的(某些属性)。为局部变量 (或在您的情况下为常量) 分配新值不会更改对象。
-
就我而言,当我执行 myArray.push(something) 时,这也不会更改数组,但也不会出现任何错误
-
当然Array#push() 正在更改对象,它正在向数组中添加一个新项并增加其长度。
标签: javascript arrays reactjs react-native