После добавления наблюдаемых свойств в массив с помощью этого действия
@action
improvePrograms = function() {
let data = this.dataPro;
this.dataProImproved = data;
for (i = 0; i < data.length; i++) {
extendObservable(this.dataProImproved[i], {
wishedFor: false,
inCart: false,
sold: false
});
}
};
Я попытался изменить значения свойств с помощью:
@action
addToWishList = function(item) {
for (i = 0; i < this.dataProImproved.length; i++) {
if (this.dataProImproved[i].program_id === item.program_id && this.dataProImproved[i].wishedFor === false) {
this.dataProImproved[i] = { ...this.dataProImproved[i], wishedFor: true };
console.log("Program added to wish list: ", this.dataProImproved[i]);
this.getWishList();
}
}
};
все выглядело нормально, но компонент, в котором яиспользование свойства наблюдаемого для изменения цветов не реагирует и не перерисовывается, даже если значение свойств изменено на true.
<TouchableOpacity onPress={!this.props.program.wishedFor ? this.onSelectWish : this.onDeselectWish}>
<FontAwesome
style={{ padding: 7 }}
name={this.props.program.wishedFor === false ? "heart-o" : "heart"}
size={28}
color={!this.props.program.wishedFor ? "#c5d1e8" : "#ff1d25"}
/>
</TouchableOpacity>
Может кто-нибудь, пожалуйста, объясните мне, что я делаю здесь неправильно.Компонент класса украшен @observer и добавлен в хранилище.