关于react mobx的问题。(尽管我认为它对任何react存储库都是通用的)有没有一种方法可以创建一个原子存储更新函数,而不会导致组件在存储更新期间呈现?
我遇到的问题是:
// store.js
class Store {
constructor() {
extendObservable(this, {
array: [1, 2],
i: 1
},
get current_element() {
return this.array[this.i];
}
}
update(array, i) {
this.array = array;
this.i = i;
}
}
component.js
// ...
render() {
return <div>store.current_element</div>
}现在,当我调用store.update([0], 0)时,我得到一个超出界限的索引错误。原因是,在store.update()函数中,在执行第一行(this.array = array;)之后,组件的呈现被触发。因此,该组件尝试引用数组[0]的索引1,这会引发索引越界错误。我希望避免这种情况,只在执行完整个store.update()函数后才触发组件呈现。
我怎样才能做到这一点呢?
发布于 2018-02-27 10:03:32
当你更新一个可观察对象时,你必须通过一个动作来完成它。例如
@action setFirstName = firstName => (this.firstName = firstName);
@action setLastName = lastName => (this.lastName = lastName);不过,我不是一个黑帮粉丝:)
https://stackoverflow.com/questions/48997340
复制相似问题