javascript - 为什么导入的值会发生变化?

标签 javascript reactjs

我不明白为什么在我定义 React 类的文件中,分配给导入的变量和从未发生变化的变量仍然会发生变化。

import statuses from '../statuses'; // array of 6 items

class MyComponent extends React.Component {

  constructor(props) {
    super(props);
    this.statuses = statuses;
  }

  render() {
    const statusOptions = this.statuses;
    if (statuses.length === statusOptions.length) statusOptions.push(obj);
    console.log(statuses.length); // 7 (?!?!)
  }
}

我不知道为什么statuses是否会被更新,以及为什么它会发生突变,就好像它是 statusOptions这里。 (需要明确的是,我还记录了 statuses 本身,果然,obj 已被推送到数组中。

最佳答案

statusesthis.statusesstatusOptions 都是对同一对象的引用.

推到其中一个,它就会出现在所有三个中。

关于javascript - 为什么导入的值会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45337600/

相关文章:

javascript - 使用按需脚本更改正在播放的视频

javascript - 在表单中捕获 iPhone 键盘下一个按钮按下事件

javascript - 使用 css 更改 javascript 变量的宽度值

javascript - 如何使 eslint 解析在 jsconfig 中映射的路径

javascript - react ;访问对象内的字段

javascript - 如何为 Google AMP 中使用方括号的 JSX 属性编写类型声明?

reactjs - 无法在 Typescript : JSX Element type does not have any construct or call signatures 中编写高阶组件

javascript - 使用 React Immutability helpers 或 Immutable js React 合并不可变对象(immutable对象)数组

ReactJS:仅渲染子组件

reactjs - 错误 : input is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`