@noneim

Как оптимизировать рендеринг react-mobx?

Есть простейший класс mobx класс:
class CntStore {
  @observable counter;
  @observable counter2;
  constructor() {
    this.counter = 0;
    this.counter2 = 0;
  }
  setTest() {
      console.log("SET counter");
      this.counter = 1;  // это вызовет функцию render у соответствующего react компонента
      console.log("SET counter2");
      this.counter2 = 1; // после этого снова вызовется функция render
      console.log("return setTest");
  }
}

У него функция setTest(), в которой последовательно устанавливаются значения наблюдаемым свойствам. Так вот как сделать чтобы в этом случае render вызывался уже только в конце функции один раз, а не как сейчас - после каждого присваивания значения какому-либо свойству?
  • Вопрос задан
  • 183 просмотра
Пригласить эксперта
Ответы на вопрос 1
@bgnx
используйте action декоратор для метода + оборачивайте любые асинхронные коллбеки которые будут внутри метода например
@action
  setTest() {
      this.counter = 1;
      this.counter2 = 1; 
     //здесь будет только один рендер
      setTimeout(action(()=>{
            this.counter = 1;
            this.counter2 = 1; 
            //здесь тоже будет только один рендер
       }),1000) 
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 19:51
15000 руб./за проект
22 нояб. 2024, в 19:15
200000 руб./за проект
22 нояб. 2024, в 18:50
30000 руб./за проект