javascript - 为什么有些人在定义 React 组件时使用 state 而不是 this.state ?

标签 javascript reactjs meteor mapbox-gl-js

我看到了不同的例子,有些人使用状态,而另一些人使用 this.state。我还是不明白什么时候用什么。在使用 Mapbox 或 Meteor 的示例中,我只看到 this.state。

例1:

export default class SomeComponent extends Component {
    state = { someState }
    render() {
        return (
          <Something-to-render-that-uses-state>
        );
    }
}

例2:

export default class SomeComponent extends Component {
    constructor(props) {
        super(props);
        this.state = { someState }
    }
    render() {
        return (
          <Something-to-render-that-uses-state>
        );
    }
}

最佳答案

当你在类中定义一个变量作为Object类属性初始化时,你不需要使用这个关键字,只需编写state = { someState }就足够了,但是如果你想在函数或构造函数中定义类变量时,需要使用 this 关键字来指定该变量属于哪个范围

export default class SomeComponent extends Component {
    constructor(props) {
        super(props);
        this.state = { someState }
    }

    render() {
        return (
          <Something-to-render-that-uses-state>
        );
    }
}

关于javascript - 为什么有些人在定义 React 组件时使用 state 而不是 this.state ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50675340/

相关文章:

javascript - 将预处理器语言添加到 vueify 组件的样式部分会导致构建失败而不会出现错误

javascript - 样式文件导入期间测试失败

因潜在扩展而过期的 Javascript 警报

javascript - 如何合并嵌套对象数组的内容?

javascript - Meteor Session.get() 返回正确的值,但有额外的空格/行

Javascript - 沿对 Angular 线裁剪图像

reactjs - React.js 建议直接将 `props` 分配给状态

javascript - React Native slider onValueChange 调用 setState 使 slider 滞后

javascript - Meteor 和 Phaser - 简单示例的错误

javascript - 模板更新的 meteor react 功能