@ArtyomPLAY
Люблю Vue, React и все что с этим связано.

Почему Mobx не ререндерит компонент?

Компонент:
import React from 'react';

//import { withAdminLayout } from '../../layouts/index';
import store from '../../stores/store';
import { observer } from 'mobx-react';

import './styles.css';
import { Button } from '../../components';

class Admin extends React.Component {
  load = () => {
    store.loadIds();
  };

  render() {
    return (
      <div>
        {store.ids.all.map(id => (
          <p>{id}</p>
        ))}
        <Button onClick={this.load}>Login user</Button>
      </div>
    );
  }
}

export default observer(Admin);

Код стора выкладывать не буду, ибо с ним, я уверен, все в порядке. Взял стор полностью из прошлого приложения для теста, но сейчас компонент не хочет ре-рендериться при изменении данных.
Сделал кнопку для проверки ререндера, т.е. при её нажатии в стор грузятся некие данные с апи, но компонент никак на это не реагирует, хоть в мобх девтулс все отображается.
Что может быть не так? p.s. юзаю next.js
  • Вопрос задан
  • 500 просмотров
Решения вопроса 1
@ArtyomPLAY Автор вопроса
Люблю Vue, React и все что с этим связано.
Ответ найден. Next.js похоже не очень дружит с decorate в mobx, поэтому:
Не работает с next.js:
class Store { ids = {...} }
decorate(Store, {ids: observable}

Работает с next.js:
class Store {
ids = observable.object({...}); 
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы