runInAction可以接受一个字符串类型的参数,就像是装饰器修饰的form名一样,一般来说对于调试是比较友好的
runInAction('modify', () => {
store.string = ''
})
action.bound 将被修饰的方法的上下文强制绑定到该对象上
使用场景:将方法作为callback传给其他对象时
无论是action还是action.bound都需要绑定在预先定义的对象方法上
runInAction:
mobx提供了一种语法糖:允许随时定义一个匿名的action方法,并运行它
action可以作为普通函数或者装饰器
直接向变量赋值的操作改变可观察数据:每次的修改都会触发autorun或者reaction的运行,这种高频的触发操作是没有必要的。
比如用户对视图的一次点击操作,需要同步修改多个状态变量,但是视图的更新却只需要一次。
为了优化这个问题,引入action
使用action的收益:将多次对状态的赋值合并为一次
@action
@action.bound
runInAction(string, function)