【发布时间】:2022-05-03 01:26:14
【问题描述】:
是否可以检测到 observable 何时发生任何变化?
例如,假设你有这个:
@observable myObject = [{id: 1, name: 'apples'}, {id: 2, name: 'banana' }]
稍后,随着一些用户输入,值会发生变化。我怎样才能轻松检测到这一点?
我想添加一个全局“保存”按钮,但仅当该可观察对象自初始加载后发生更改时才可点击。
我目前的解决方案是添加另一个可观察的myObjectChanged,它返回真/假,并且无论组件更改 myObject 中的数据,我还添加了一行将 myObjectChanged 更改为 true。如果单击保存按钮,它会保存该 observable 并将其更改回 false。
这会导致大量额外的代码行遍布各处。有更好/更清洁的方法吗?
【问题讨论】:
-
我觉得您可以在此处使用
computed、observe、spy或autorun中的任何一个,具体取决于您在观察中所需的粒度级别。这里有一个简单的例子,用computedgithub.com/mobxjs/mobx/issues/164 对表单进行脏检查
标签: reactjs react-jsx mobx mobx-react