Я использую mobx-реагировать-Lite с крючками.
У меня есть два магазина.AuthStore
SomeOtherStore
Это моя кукла AuthStore
import { observable, decorate, action } from 'mobx';
import { createContext } from 'react';
import { ROLE_LOGISTICS_MANAGER } from '../settings/constants';
import AuthService from '../services/AuthService';
class AuthStore {
constructor() {
this.authService = new AuthService();
}
currentMode = ROLE_LOGISTICS_MANAGER;
authenticating = true;
isLoggedIn = false;
userId = null;
loginLoading = false;
login = async params => {
this.loginLoading = true;
try {
const data = await this.authService.loginAsync(params);
this.loginLoading = false;
this.isLoggedIn = true;
} catch (e) {
console.error(e);
this.loginError = e;
} finally {
this.loginLoading = false;
}
};
}
decorate(AuthStore, {
currentMode: observable,
loginLoading: observable,
isLoggedIn: observable,
authenticating: observable,
userId: observable,
fetchUser: action,
login: action
});
export const AuthStoreContext = createContext(new AuthStore());
Теперь давайте скажем, что я хочу изменить isLoggedIn из другого магазина. Как я могу это сделать?Я пытался найти способы в документах, не мог найти твердое решение.Я использую хуки с Mobx-реагировать на Lite Так что обычно я использую MOBX, как
const authStore = useContext(AuthStoreContext);