如何在React中动态创建状态?

时间:2017-07-27 03:12:24

标签: reactjs redux components state

是否可以在不使用构造函数内的对象的情况下创建状态?

我需要动态地在组件内动态创建新状态。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

状态对象实际上只是一个Javascript对象,因此它已经是动态的。

如果需要,您可以随时随地修改。但这完全打破了React为您提供的良好设计模式 - 数据的单一事实来源,并且没有变异任何状态对象为您提供了所有已发生的操作的完美历史记录,使调试成为一块蛋糕。

这就是为什么他们鼓励你创建一个初始状态,然后使用setState,它只是在修改你指定的字段时创建一个新副本。

简单地跳至'正确使用状态':https://facebook.github.io/react/docs/state-and-lifecycle.html

如果您需要动态创建新状态,是否有任何理由无法在构造函数中使用初始值定义这些状态,无论您是否使用它们?我没有看到他们最初不存在的任何理由,而不仅仅是初始状态。关于你尝试做什么的更多细节会有所帮助。

答案 1 :(得分:0)

如果你使用的是打字稿,我会像你这样定义你的状态:

interface IComponentState {
    dynamicState: any
}

然后你可以将任何对象分配给这个dynamicState .... 或其任意数量的选择...

在普通JS中你甚至不需要分配类型,所以它会更简单 - 只需在开始时分配空对象

答案 2 :(得分:0)

在内部方法中创建状态 - 渲染,是个坏主意。
React建议仅使用setState()或' state = ...'在构造函数中。