私はMobXストアを持っていて、ネイティブクラスの設定と動作には反応しますが、意図したとおりのものではありません。私はこのようなUserPreferencesStore
で観察可能なユーザー設定のリストを持っている:MobX - 観察可能な値を変更するために観測可能なパラメータをアクションに渡しますか?
<TouchableHighlight onPress={() => this.onPressPreference('receive_upvotes_mail')}>
<Image source={require('images/Email.png')}
style={UserPreferencesStore.userPreferences.receive_upvotes_mail == 1 && styles.active} />
</TouchableHighlight>
<TouchableHighlight onPress={() => this.onPressPreference('receive_answers_mail')}>
<Image source={require('images/Email.png')}
style={UserPreferencesStore.userPreferences.receive_answers_mail == 1 && styles.active} />
</TouchableHighlight>
<TouchableHighlight onPress={() => this.onPressPreference('receive_comments_mail')}>
<Image source={require('images/Email.png')}
style={UserPreferencesStore.userPreferences.receive_comments_mail == 1 && styles.active} />
</TouchableHighlight>
と:反応ネイティブクラスで
class UserPreferencesStore {
@observable userPreferences = {
receive_upvotes_mail: 0,
receive_answers_mail: 0,
receive_comments_mail: 1
}
}
を、私はこのようなTouchableHighlight
のたonPressに基づいて上記の観測を更新したいですここでは動作しない観測を更新するonPressPreference
アクションが...ある
@action onPressPreference = (preferenceName) => {
// alert(preferenceName);
UserPreferencesStore.userPreferences.preferenceName = UserPreferencesStore.userPreferences.preferenceName == 0 ? 1 : 0;
}
preferenceName
パラメータはアラートに示されているように完全に渡されますが、ここに「追加」されたときには動作していないように見えますUserPreferencesStore.userPreferences.preferenceName
渡された優先観察可能ストア値を更新します。
しかし、私が3つのアクションを作成し、それぞれのプリファレンスに1つずつトリガーしてonPressをトリガーすると、それは機能し、オブザーバブルはストア内の値を正しく更新しますが、渡されたパラメータを単一のアクションに使用することができます。
渡されたパラメータを単一のアクションで動作させて、それぞれの観測値の値を更新するにはどうすればよいですか?
あなたの質問は実際にはMobXについてではありません – Alik