#javascript #reactjs #mobx
#javascript #reactjs #mobx
Вопрос:
У меня есть вызов api, который хорошо получает код состояния и значение данных, затем я присваиваю эти данные переменной mobx. Затем я попытался выполнить вычисляемое поле, но это выдало мне ошибку, я утешил, зарегистрировал, что происходит, и что это показало мне, что вызов api действительно дает хорошее значение, но когда я присваиваю array mobx this.items
в конце, у него сотни оболочек, и он не может использовать для него какие-либо методы массива. Как это решить? Спасибо!
import { makeObservable, observable, action, computed } from 'mobx'
class Products{
items = [];
constructor(rootStore){
this.rootStore = rootStore;
this.api = this.rootStore.api.products
makeObservable(this, {
items: observable,
getAll: action,
getPopular: computed
})
}
async getAll(){
let res = await this.api.getAll();
console.log(res.data) // normal
if(res.status === 'success')
this.items = res.data;
console.log(this.items); // with diffrent wrapper therfore can't do a computed method
}
get getPopular(){
return this.items.filter(el => el.popular)
}
}
export default Products;
Комментарии:
1. Какую ошибку он показывает?
2. Это то, что MobX делает с вашими наблюдаемыми данными под капотом, но наблюдаемый массив MobX по-прежнему имеет все обычные методы массива, например
filter
. Какую ошибку вы получаете?