Все сервисы Хабра
Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Закрыть
Задать вопрос
ivanp83
0
вклад
2
вопроса
0
ответов
0%
решений
Комментарии
Информация
Ответы
Вопросы
Комментарии
Подписки
Нравится
Reactjs Context API как изменить стейт при изменении размера экрана пользователя?
ivanp83
@ivanp83
Автор вопроса
просто Redux для данного проекта избыточен. и уже все работaет с контестом. переделка грозит масштабным рефакторингом всего проекта))
Написано
более трёх лет назад
Reactjs Context API как изменить стейт при изменении размера экрана пользователя?
ivanp83
@ivanp83
Автор вопроса
Роман Александрович
,ясно. спс. только я не понимаю, как привязать слушатель к изменению стейта в контесте?понимаю, что надо вызвать дополнительный обработчик, только в какой конкретно момент его вызывать?
Написано
более трёх лет назад
Reactjs Context API как изменить стейт при изменении размера экрана пользователя?
ivanp83
@ivanp83
Автор вопроса
Роман Александрович
, class PageWrapper extends React.Component {
constructor(props) {
super(props);
this.state = {
height: window.innerHeight,
width: window.innerWidth
};
}
componentDidMount() {
console.log(this.state.height);
window.addEventListener("resize", this.updateDimensions);
}
updateDimensions = () => {
this.setState({
height: window.innerHeight,
width: window.innerWidth
});
};
componentWillUnmount() {
window.removeEventListener("resize", this.updateDimensions);
}
render() {
const childrenWithProps = React.Children.map(this.props.children, child =>
React.cloneElement(child, { width: this.state.width })
);
return {childrenWithProps};
}
}
export default PageWrapper;
Так, теперь добавил. до конца правда не понимаю зачем удалять слушатель перед размонтированием.
Написано
более трёх лет назад
Reactjs Context API как изменить стейт при изменении размера экрана пользователя?
ivanp83
@ivanp83
Автор вопроса
Роман Александрович
, я задал подобный event блоку обертке всей страницы : class PageWrapper extends React.Component {
constructor(props) {
super(props);
this.state = {
height: window.innerHeight,
width: window.innerWidth
};
}
componentDidMount() {
console.log(this.state.height);
window.addEventListener("resize", this.updateDimensions);
}
updateDimensions = () => {
this.setState({
height: window.innerHeight,
width: window.innerWidth
});
};
render() {
const childrenWithProps = React.Children.map(this.props.children, child =>
React.cloneElement(child, { width: this.state.width })
);
return {childrenWithProps};
}
}
export default PageWrapper;
не работал ранее с Context API не могу понять, как приязать обработчик к измнениею ситейта самого Context c isMobile : false на isMobile:true
Написано
более трёх лет назад
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации
Закрыть
Реклама