2017-07-27 46 views
0

是否可以创建状态而不使用构造函数中的对象?如何在React中动态创建状态?

我需要动态创建组件内的新状态。任何建议?

+0

我没有得到创建动态状态的目的。您可以在构造函数中使用空状态对象,然后以任何您想要的方式操作组件中的状态对象。你能在这里详细说明你的要求吗? – Umesh

回答

0

在您使用打字稿情况下,我会定义你的状态是这样的:

interface IComponentState { 
    dynamicState: any 
} 

,然后你可以assing任何对象这个dynamicState .... 或任意数量的选项,它.. 。

中,你甚至不需要指定类型,所以这将是simplier纯JS - 只是在启动

0

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

0

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

如果你愿意,你可以随时随地修改它。但是,这彻底打破了React给你的良好设计模式 - 数据的单一真实来源,并且不会改变任何状态对象,从而让您对所发生的每个操作都有一个完美的历史记录,从而使调试变得小菜一碟。

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

跳过了“使用国家正确”:https://facebook.github.io/react/docs/state-and-lifecycle.html

如果你需要“动态即时创建新的国家”,有没有你不能与初始值的构造函数中定义这些任何理由,无论是或者你不使用它们?我没有看到任何起初不存在的理由,而不是仅仅具有初始状态。关于你想要做什么的更多细节将会有所帮助。