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

Reactjs 如何在React中动态创建状态?,reactjs,redux,components,state,Reactjs,Redux,Components,State,是否可以在不使用构造函数内的对象的情况下创建状态 我需要动态地在组件内部创建新状态。有什么建议吗?如果您使用的是typescript,我会这样定义您的状态: interface IComponentState { dynamicState: any } 然后你可以将任何对象分配到这个动态状态。。。。 或任何数量的选项 在纯JS中,您甚至不需要指定类型,因此它将更简单-只需在开始时指定空对象在内部方法-render中创建状态,这是个坏主意 React建议只使用setState(),或构造

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


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

如果您使用的是typescript,我会这样定义您的状态:

interface IComponentState {
    dynamicState: any
}
然后你可以将任何对象分配到这个动态状态。。。。 或任何数量的选项


在纯JS中,您甚至不需要指定类型,因此它将更简单-只需在开始时指定空对象

在内部方法-render中创建状态,这是个坏主意

React建议只使用setState(),或构造函数中的“state=…”。

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

如果需要,您可以随时随地对其进行修改。但这完全打破了React为您提供的良好设计模式——数据的单一真实来源,并且没有任何状态对象的变异为您提供已发生的每个操作的完美历史,这使得调试变得轻而易举

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

跳到“正确使用状态”:


如果您需要“动态创建新状态”,是否有任何理由不能在构造函数中使用初始值定义这些状态,无论您是否使用它们?我看不出有什么理由一开始它们就不存在,而只是有一个初始状态。更多关于你想做什么的细节会很有帮助

我没有达到创建动态状态的目的。您可以在构造函数中有空的state对象,然后以任何方式操作组件中的state对象。你能在这里详细说明你的需求吗?这是否意味着如果我在迭代器中,那么我可以为它创建一个状态吗?好的,我找到了我正在寻找的解决方案。谢谢,你的回答增强了我的搜索技能:)()