Проблема с mobx react не может выполнить вычисляемый метод из-за разных оболочек для переменной из mobx

#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 . Какую ошибку вы получаете?