MobX - 可观察对象只抓取更改的字段?
MobX - Observable object grabbing only changed fields?
我有一个 MobX 存储设置,其中包含一个具有默认值的可观察对象,其值是在加载 React Native 场景时从服务器填充的。我在 UserPreferencesStore
中有一个可观察到的用户偏好列表,如下所示:
class UserPreferencesStore {
@observable userPreferences = {
receive_upvotes_mail: 0,
receive_answers_mail: 0,
receive_comments_mail: 0
}
}
在 RN 端,这些值更改为:
class UserPreferencesStore {
@observable userPreferences = {
receive_upvotes_mail: 1,
receive_answers_mail: 1,
receive_comments_mail: 0
}
}
我不确定如何仅将更改的项目发送到服务器。任何的想法?另外,即使我有 20 个字段,这是在这种情况下使用 mobx 的最有效方法吗?一个可观察对象?
这应该是为每个字段建立单独的自动运行或反应的问题:
class UserPreferencesStore {
@observable userPreferences = {
receive_upvotes_mail: 1,
receive_answers_mail: 1,
receive_comments_mail: 0
}
constructor() {
Object.keys(this.userPreferences).forEach(setting => {
reaction(
// whenever a new value is produced...
() => this.userPreferences[setting],
// ..run this effect
(newValue) => storeSettingOnServer(setting, newValue)
)
})
}
}
我有一个 MobX 存储设置,其中包含一个具有默认值的可观察对象,其值是在加载 React Native 场景时从服务器填充的。我在 UserPreferencesStore
中有一个可观察到的用户偏好列表,如下所示:
class UserPreferencesStore {
@observable userPreferences = {
receive_upvotes_mail: 0,
receive_answers_mail: 0,
receive_comments_mail: 0
}
}
在 RN 端,这些值更改为:
class UserPreferencesStore {
@observable userPreferences = {
receive_upvotes_mail: 1,
receive_answers_mail: 1,
receive_comments_mail: 0
}
}
我不确定如何仅将更改的项目发送到服务器。任何的想法?另外,即使我有 20 个字段,这是在这种情况下使用 mobx 的最有效方法吗?一个可观察对象?
这应该是为每个字段建立单独的自动运行或反应的问题:
class UserPreferencesStore {
@observable userPreferences = {
receive_upvotes_mail: 1,
receive_answers_mail: 1,
receive_comments_mail: 0
}
constructor() {
Object.keys(this.userPreferences).forEach(setting => {
reaction(
// whenever a new value is produced...
() => this.userPreferences[setting],
// ..run this effect
(newValue) => storeSettingOnServer(setting, newValue)
)
})
}
}