Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
21 / 6 / 8
Регистрация: 31.05.2015
Сообщений: 151

Не читается значение свойства из стора MobX при наследовании сторов

22.11.2025, 13:13. Показов 527. Ответов 4

Студворк — интернет-сервис помощи студентам
Всем привет.
Пытаюсь реализовать наследование в сторе MobX. Столкнулся со странным поведением при попытке задать значение свойству isLoading.
В сеттере свойства нормально проходит установка
В геттере как будто кэшируется первоначальное значение
Причем свойство находится не в базовом классе.

Если отказаться от выноса других computed свойств в базовый класс, все норм.

Стор:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
export class MyStore extends MyBaseStore {
 
    private isLoading: boolean = true;
 
    constructor(root: RootStore) {
        super(root);
        makeObservable(this, {
            IsLoading: computed
        });
    }
 
    public get IsLoading(): boolean {
        return this.isLoading;
    }
    public set IsLoading(value: boolean) {
        this.isLoading = value;
        console.log(this.isLoading); // при value === false корректно выдает false
    }
}
В компоненте (обернут observer())
JavaScript
1
2
myStore.IsLoading = false;
console.log(myStore.IsLoading); // выдает true
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.11.2025, 13:13
Ответы с готовыми решениями:

Использую mobx-react-lite и mobx-utils, во время успешного ответа от сервера возникает проблема с корректной отрисовкой
сервер возвращает ответ в формате {"data": {},"status": "ok"} Код компонента, который должен...

Redux. Регистрация состояние стора, исходя из композиции компонентов
Уважаемые форумчане, помогите пожалуйста понять, как правильно реализовать задачу, которую одна...

Вычисляемое свойство MobX пытается обновить само себя
Всем привет. Имеется хранилище MobX (класс AppModalsStore) с computed-свойством...

4
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3837 / 1682 / 431
Регистрация: 14.03.2022
Сообщений: 4,250
22.11.2025, 23:32
Цитата Сообщение от ksardas2008 Посмотреть сообщение
В геттере как будто кэшируется первоначальное значение
Изменение состояния - асинхронное действие...
Цитата Сообщение от ksardas2008 Посмотреть сообщение
JavaScript
1
2
myStore.IsLoading = false;
console.log(myStore.IsLoading); // выдает true
Так работать не будет.
0
21 / 6 / 8
Регистрация: 31.05.2015
Сообщений: 151
23.11.2025, 15:17  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Изменение состояния - асинхронное действие...
Это не состояние, а computed-свойство в сторе mobx.
Собственно, перерисовка по снятию isLoading в самом компоненте так и не запускается, ни в какое время.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3837 / 1682 / 431
Регистрация: 14.03.2022
Сообщений: 4,250
23.11.2025, 17:58
Цитата Сообщение от ksardas2008 Посмотреть сообщение
ерерисовка по снятию isLoading в самом компоненте так и не запускается, ни в какое время
Тогда с тебя тестовый пример, на котором это проявляется...
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3837 / 1682 / 431
Регистрация: 14.03.2022
Сообщений: 4,250
24.11.2025, 10:12
Цитата Сообщение от ksardas2008 Посмотреть сообщение
перерисовка по снятию isLoading в самом компоненте так и не запускается, ни в какое время
Есть мнение... (с)
Что виной всему - отсутствие собственно слежения за самим свойством isLoading.

Вот у меня все рендерится.

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { makeObservable, computed, observable  } from "mobx"
import { observer } from "mobx-react-lite"
 
class MyStore {
    isLoading = true
    constructor(){
        makeObservable(this, {isLoading: observable, IsLoading: computed})
    }
    get IsLoading() {
        return this.isLoading;
    }
    set IsLoading(value) {
        this.isLoading = value;
    }
}
const stor = new MyStore
 
// Главный компонент приложения
const App = () => {
    const act = _ => stor.IsLoading = !stor.IsLoading
    const v = stor.IsLoading ? 'Выкл': 'Вкл'
    return <main>
        <button onClick={act}>{v}</button>
    </main>
};
 
export default observer(App)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2025, 10:12
Помогаю со студенческими работами здесь

Mobx strict mode
Добрый день, объясните, пожалуйста, почему выходит предупреждение Since strict-mode is enabled,...

Mobx не загружается в проект
Доброго времени суток. Начал  изучение mobx, пытаюсь установить п проект npm i mobx-react-lite...

Не работает изменение состояния в MobX
Почему не работает изменения состояние в MobX? Код ниже: инициализирую объект, который будет...

Проблемы с состоянием аутентификации MobX
Доброго времени суток, создаю spa веб-приложение, для хранения всех состояний выбрал mobx, создал...

Ошибка рендеринга mobx
Доброго времени суток, у меня есть проблема, есть менеджер (MobX) RequestStore, в нём все состояния...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru