首页 > 解决方案 > ReactJS/FP state 和 this 的区别

问题描述

正如标题所问,在 ReactJS 组件中使用“state”和“this”有什么区别?如果我控制台记录组件的“this”,则使用“this”声明的状态和属性出现在对象内的相同“级别”。

“状态”似乎只是包装组件属性的附加属性?如果我想将“状态”作为道具传递给另一个组件,那么肯定传递“这个”就足够了吗?

例如。:

state = {
  isPastDelay: false,
};

componentDidMount () {
  this._delayTimer = setTimeout(() => () {
    console.log('Timeout');
  }, 200);

  console.log(this);
}

为什么不直接声明_delayTimer内部状态?

还是this._delayTimer像“私人”财产一样行事?

我还认为_delayTimer应该在方法之外声明componentDidMount()并且只在方法内部分配一个值。

标签: javascriptreactjsfunctional-programming

解决方案


状态与 ReactJS 有关。它就像一个数据容器。State可以被声明它的组件(容器组件)和它的子组件使用。我们应该始终尝试使我们的状态尽可能简单,并尽量减少有状态组件的数量。

然而,this与JavaScript有关。this与上下文有关。在大多数地方this都与函数及其调用方式有关。因此,每次调用函数时它的值可能不同。


推荐阅读