简化action属性更新
通常状况下,store
中会有很多属性,其中有些属性更新会很频繁,每一个属性都须要写一个action
函数去更新,当这种须要变更的属性越多时,会导致store
中代码量异样的宏大,可读性也会升高。就如上面代码一样:
class TestStore { @observable info = {} as IInfo; @observable list = [] as IList; @action setInfo = (value: IInfo) => { this.info = value; } @action setList = (value: IList) => { this.list = value; }}
引入typescript
中keyof
关键字应用,能够将上述action
函数简化如下:
class TestStore { @observable info = {} as IInfo; @observable list = [] as IList; @action setValue = <T extends keyof TestStore>(key: T, value: this[T]) => { this[key] = value; }}