我有一个MobX商店设置,其中包含一个具有默认值的可观察对象,其值在反应原生场景的加载时从服务器填充。我在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
}
}
我不确定如何将仅更改的项发送到服务器。任何的想法?另外,这是使用mobx来实现这种情况的最有效方法,即使我有20个字段,这是一个可观察的对象吗?
答案 0 :(得分:2)
这应该是为每个领域建立单独的自动运行或反应的问题:
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)
)
})
}
}