Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Ну все правильно. Теперь дело за «малым» - как-то на уровне статической проверки и линта все это заэнфорсить.
Мобикс решает проблему под названием «Редакс»
а мемоизация это побочный эффект
К тому же тащить в Мобикс локальный стейт компонента это добавление ему лишней зависимости
То есть вы считаете, что состояние для чекбокса (нажат/не нажат/не определён) нужно хранить во внешнем сторе вместо локального стейта компонента?
const MyComonent = observer(() => {
const checkbox = useBoolean();
return (
<div onClick={checkbox.toggle}>
Checked: {checkbox.value + ''}
</div>
)
});
export class SomeState {
showErrorModal = new WithBooleanFlag();
fetchSomeData = async () => {
try {
// ...
} catch (e) {
this.showErrorModal.setTrue();
} finally {
//...
}
}
}
export class WithBooleanFlag {
@observable value = false;
constructor(initialFlag = false) {
this.value = initialFlag;
}
setTrue = () => {
this.value = true;
};
setFalse = () => {
this.value = false;
};
toggle = () => {
this.value = !this.value;
}
export function useBoolean(initialFlag = false) {
const [flag] = useState(() => new WithBooleanFlag());
return flag;
}
Memo в React