当前位置: 首页 > 知识库问答 >
问题:

在不使用react.createClass的情况下使用道具在react中种子初始状态

容飞掣
2023-03-14
getInitialState: function() {
    return {count: this.props.initialCount};
},

看一下底部,上面写着“但是,如果您明确表示道具只是组件内部控制状态的种子数据,它就不是反模式:”这正是我想要做的。

这在使用React.CreateClass时非常有效,但如果可能的话,我希望使用ES6类来实现这一点。但是当使用ES6类时,初始状态是作为类上的静态属性提供的。如果您尝试实现getInitialState(),您将得到一个错误。这意味着我没有机会在道具可用后计算它。请参见https://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html#es7-property-initializers“

在这一节中,他们提供了一个示例,通过在构造函数中简单地设置this.state来计算初始状态,与旧的getInitialState方法类似。然而,当我尝试这个时,这个。道具还没有设置。

我已经搜索了一个生命周期方法,用于第一次初始设置道具的时候,这样我就可以设置那一刻的状态,但我找不到任何这样的生命周期方法。

在使用扩展react.Component的ES6类时,我必须使用react.CreateClass还是有一种方法来种子我的initialState?

共有1个答案

朱建弼
2023-03-14

事实证明,我没有在构造函数中向super传递参数,这就是为什么在构造函数中不能使用道具的原因。我只需要改变这个:

constructor() {
  super()
  ...
}

变成这样:

constructor(...args) {
  super(...args)
  ...
}

我的问题非常类似于如何在react中为一个状态分配一个道具值,这是我犯错误的原因,所以这可能被认为是重复的。

 类似资料:
  • 2)有没有另一种方法可以重写这个逻辑而不使用道具来设置状态? 父组件: 子组件

  • 问题内容: 注意:我在使用React Native时遇到了这个特定的问题,但是我想这也同样适用于React。 我有一个使用React.Component构建的React组件。我不需要设置状态,但是我有道具。我建议的语法如下: 我知道我可以使用函数来构造此组件,如下所示: 但是我更喜欢前者,因为我的组件会增长,可能会有状态等,我只想以相似的方式构建所有组件。 现在,我的linter抱怨拥有一个无用的

  • 我希望你一切都好!我使用依赖于时间的随机数进行加密。但这使得我的加密可以被破解……我的问题是,我如何在运行随机码后制作每次都不一样的随机码,并且不使用种子时间。大多数时候我们是这样随机的:srand((无符号)时间(0));cout

  • 问题内容: 我想知道是否可以在没有支持库的情况下使用FragmentStatePagerAdapter类或其等效类? 我知道如何使用本机片段代替支持库中的本机片段,许多其他类也具有类似的等效项,但是我找不到代替该类的内容。 我基本上想扩展它以便在我的适配器中使用,就像这样 问题答案: 我想您已经阅读了 docs,但以防万一: 该课程目前正在早期设计和开发中。该API可能会在以后的兼容性库更新中更改

  • 在Java中,是否可以编写一个switch语句,其中每个大小写包含多个值?例如(尽管下面的代码显然不起作用): 我认为目标C可以这样做,Java是否也有类似的事情?还是只使用、语句?

  • 问题内容: 这可能是一个琐碎的问题,但阅读ARG和ENV的文档对我而言并不清楚。 我正在构建一个PHP-FPM容器,我想提供启用/禁用某些用户需求扩展的功能。 如果可以在Dockerfile中通过添加条件并在build命令上传递标志来做到这一点,那就太好了,但不支持AFAIK。 就我而言,我的个人方法是在容器启动时运行一个小的脚本,如下所示: 这是我的样子: 如果您需要深入了解我的工作方式,那么这