javascript - 导出数组 ReactJS - 错误 : array is read-only

标签 javascript arrays reactjs export

我正在尝试使用 React 将变量导出到另一个文件。

我有一个数组,我想在多个文件中使用它。在一个文件中,当按下按钮时,它应该被清空。

myArray.js

export var myArray = [];

app.js

import {myArray} from './myArray.js';
function resetArray(){
  myArray = [];
}

Webpack 出现以下错误:

ERROR in ./app.js Module build failed: SyntaxError: "myArray" is read-only

如何使其不是只读而是可调的?

谢谢!

最佳答案

您应该在这里考虑采用不同的方法。本质上,您正在违背使 React 发挥作用的单向数据流原则。

您应该重新设计它,以便在主 React 组件中将此数组设置为状态。然后将该数组作为 props 传递给需要访问该数组的子组件。

然后,如果您希望子组件更改数组,则需要向下传递一个名为 updateMyArray 的函数,然后该组件在顶部组件上调用该函数。

类似这样的事情:

class MainComponent extends React.Component {
  state = {
    myArray: ['a','b','c']
  }

  updateMyArray(newArray) {
    this.setState({myArray: newArray})
  }

  render() {
    return (<div>
        <ChildComponent updateArray={this.updateMyArray} myArray={this.state.myArray} />
      </div>
    )
  }
}

然后在子组件中,您可以在适当的时候调用 this.props.updateMyArray(someNewArray) ,它将从顶部重新渲染,并将新数组传递给 props 中的子组件。

关于javascript - 导出数组 ReactJS - 错误 : array is read-only,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51855990/

相关文章:

java - 在java中不使用for循环填充一维数组

arrays - 当没有频繁值时如何处理数组中的频繁值

reactjs - 2022 年如何在 CRA TypeScript 中创建路径别名?

javascript - 下拉菜单无法在 React 中实现

c# - 未见 Javascript 更新的 ASP.NET TextBox

Javascript/jQuery 视频弹出窗口

javascript - jQuery UI - 检测元素是否被拖动

java - 将字符串数组转换为 Map

reactjs - 阻止浏览器窗口尝试容纳 Appbar Tabs 中的项目,也许?

javascript - 想要将 JavaScript 代码放入 while 循环中,以便当 cphealth 或玩家生命值 <= 0 时游戏停止