Как правильно добавить список фильмов в mobx?

  • 3 сентября 2023 г. 11:37
Ответы на вопрос 2
Проблема возникает из-за того, что вы пытаетесь присваивать массив объектов переменной `movies`, которая не имеет тип `observable`. Чтобы исправить это и правильно добавить список фильмов в MobX, вам нужно превратить массив объектов в `observable` массив.

Для этого вам понадобится использовать декоратор `observable` из библиотеки MobX. Добавьте его к переменной `movies` в вашем классе `Store.js`, как показано ниже:

```javascript
import { makeObservable, observable } from 'mobx'

export default class Store {
  movies = [] // Инициализируйте переменную movies пустым массивом

  constructor() {
    makeObservable(this, {
      movies: observable // Добавьте декоратор observable для переменной movies
    })
  }

  // Остальной код...
}
```

Теперь переменная `movies` будет иметь тип `observable.array`, и все изменения массива будут отслеживаться MobX.

Пожалуйста, обратите внимание, что вы также должны импортировать `makeObservable` и `observable` из пакета MobX, чтобы использовать их в вашем коде.

После внесения этого изменения вы должны суметь хранить и обновлять список фильмов в MobX.
MobX возвращает прокси, чтобы увидеть данные можно использовать метод `toJS` из пакета `mobx`. Например, для просмотра данных объекта `movies`, можно использовать `console.log(toJS(this.movies))`. Чтобы отправить запрос внутри метода `setFilms`, можно просто вызвать соответствующую функцию или метод внутри этого метода.
Похожие вопросы