У меня есть модальный компонент (React), который наблюдает за изменениями с помощью метода open, close в магазине mobx.
При открытии мне нужно установить document.body.style.overflow = 'hidden'
, чтобы сохранить модальную прокрутку. В завершение убираю скрытый стиль с тела.
@action open = () => {
document.body.style.overflow = 'hidden'
}
@action close = () => {
document.body.style.overflow = ''
}
Есть ли лучший способ сделать это с помощью autorun
?
Я не могу понять, где вызвать автозапуск, вне класса магазина или внутри есть метод. Мне не повезло.
autorun(
() => {
document.body.style.overflow = this.isMaximized ? 'hidden' : ''
},
{ name: 'bodyOverflowUpdate' }
)
Для справки, this.isMaximized
- это вычисленное значение.
@computed
get isMaximized() {
return this.modalState.isOpen && !this.modalState.isMinimized
}