javascript - 将对象存储在 React 组件的状态中?

标签 javascript reactjs

是否可以将对象存储在 React 组件的状态中?如果是,那么我们如何使用 setState 更改该对象中键的值?我认为语法上不允许这样写:

this.setState({ abc.xyz: 'new value' });

类似地,我有另一个问题:在 React 组件中有一组变量以便它们可以在组件的任何方法中使用,而不是将它们存储在状态中是否可以?

您可以创建一个包含所有这些变量的简单对象并将其放置在组件级别,就像您在组件上声明任何方法一样。

很可能会遇到这样的情况,您在代码中包含大量业务逻辑并且需要使用许多变量,这些变量的值可以通过多种方法更改,然后您可以根据这些值更改组件的状态。

因此,不是将所有这些变量都保留在状态中,而是只保留那些值应直接反射(reflect)在 UI 中的变量。

如果这种方法比我在这里写的第一个问题更好,那么我就不需要在状态中存储对象。

最佳答案

  1. this.setState({ abc.xyz: 'new value' }); 语法是不允许的。 你必须传递整个对象。

    this.setState({abc: {xyz: 'new value'}});
    

    如果abc中还有其他变量

    var abc = this.state.abc;
    abc.xyz = 'new value';
    this.setState({abc: abc});
    
  2. 如果它们不依赖于 this.props 和 this.state,您可以使用普通变量。

关于javascript - 将对象存储在 React 组件的状态中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27105257/

相关文章:

javascript - 每次运行代码时我的网站都会刷新

javascript - Jquery 1.10.2 在 IE10 中不工作 - JSON

javascript - 如何正确记录 React/Redux 应用程序?

javascript - 如何在 Quill(富文本编辑器)中检测和 trim 前导/尾随空格?

javascript - 如何在悬停在句子中的单词上时显示定义?

javascript - 更改数组中的动态复选框以更新 mysql 数据库

javascript - 如何覆盖禁用的 Material UI TextField 的全局边框颜色样式?

javascript - react VX 图表 : React does not recognize the `xScale` prop on a DOM element

javascript - 显示透明图像的形状

javascript - ReactJS/JavaScript : Access query results