在React组件的状态下存储对象?

是否可以在React组件的状态下存储对象?如果是,那么我们如何使用来更改该对象中键的值setState我认为在语法上不允许这样写:

this.setState({ abc.xyz: 'new value' });

同样,我还有一个问题:在React组件中可以有一组变量以便可以在组件的任何方法中使用它们,而不是将它们存储在状态中,这可以吗?

您可以创建一个包含所有这些变量的简单对象,并将其放在组件级别,就像在组件上声明任何方法一样。

很有可能会遇到这样的情况,其中您在代码中包含了很多业务逻辑,并且需要使用许多变量,这些变量的值可以通过几种方法更改,然后您可以根据这些值更改组件的状态。

因此,您不必保留所有这些变量处于状态,而只需保留其值应直接反映在UI中的那些变量。

如果这种方法比我在这里写的第一个问题更好,那么我就不需要在状态中存储对象。

乐ASam2020/03/16 12:13:09

只需一行代码即可轻松完成

this.setState({object: {...this.state.object, objectVarToChange: newData}})