如何在Reactjs的组件的状态使用OOP?

问题描述 投票:0回答:1

我想存储组件的状态类的自定义实例,但我不知道如何在正确的方式更改数据

例如改变之前我做对象的克隆。

例如我有一些属性的自定义对象:

this.state={
 user: new User();
}

当需要更改数据我做

const user = _.cloneDeep(this.state.user);
user.setSettings(/*some object of settings*/)
this.setState({user});

每一次它的确定使用cloneDeep?也许有一个更好的方式变化数据,不容易反应的生命周期?

javascript reactjs oop ecmascript-6 ecmascript-5
1个回答
0
投票

这是一般不宜在类实例使用cloneDeep因为一个类可以当实例被克隆,打破实例化逻辑。这是最好创建new一个新的类实例,一类还应该支持克隆为了新实例从现有的情况下成功地水合:

Foo.clone(fooInstance)

其中clone是一样的东西:

class Foo {
  static clone(instance) {
    const barArg = instance.bar;
    const bazarg = instance.baz;
    return new Foo(barArg, bazArg);
  }
  ...
}

这给一流的设计额外的约束。

由于不可变的状态是惯用的反应,使用类实例的状态管理复杂的,因为这些问题。这就是为什么它是最好使用对国家做出反应平淡对象的原因。

© www.soinside.com 2019 - 2024. All rights reserved.