169 похожих чатов

Вопрос по mobx: Почему для некоторого Store нужно в конструкторе обязательно

вызвать makeObservable/makeAutoObservable чтобы этот реактивно использовать поля этого класса в компонентах, к которым подключен этот стор, в то время как для компонента-класса достаточно просто указать @observable value = ‘foo’ и в рендере уже реактивно будет использоваться это поле? Почему нет необходимости для самих компонентов-классов в конструкторах использовать makeObservable(this)?

1 ответов

7 просмотров
Danil Á.- Автор вопроса

Отвечаю сам себе, исходя из документации, «The observer HoC automatically subscribes React components to any observables that are used during rendering» то есть компонент, «помеченный» декоратором observer будет обращать внимание на то какие obserable были задействованы в процессе выполнения render и неважно откуда они — из поля этого же класса или из стороннего стора. Поэтому для того чтобы сделать сторонний стор «подписываемым», необходимо вызвать make(Auto)Observable на его this, а если необходимо подписаться, то мы не должны делать сам класс observable через makeObservable, а достаточно просто указать что тот или иной observable нужен в render. Так mobx решает проблему оптимизации и исключает ненужные re-renders.

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

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
Есть сайт. Там была древняя версия эво. Стоял плагин, который каждый коммент в Jot делал отдельной страницей. После обновления все слетело, теперь старница открывается отдельн...
Artem
1
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Какое виндузовое сообщение приходит TTabSheet, что риэлайняться контролы на нем, даже у которых парент другой? Ситуация: открываю форму - кнопок нет, перелистываю на другой т...
Катерина Свиридова
7
Карта сайта