如何在屏幕方向发生变化时捕捉到与 mobx 的原生反应?
How to catch when screen orientation change in react native with mobx?
你能解释一下在使用 mobX 的 React Native 应用程序中处理方向变化的正确方法吗?
现在我尝试做这样的事情:
@observer
export class ChartSTMWork extends Component {
currwidth = Dimensions.get("window").width;
render() {
this.currwidth = Dimensions.get("window").width;
return();
}
}
但是此代码仅在渲染调用时才更改 currWidth。在我已经渲染 table 并在此渲染后更改智能手机方向的情况下,对 currWidth 变量没有影响。
或者我可能需要使用一些小计时器来检查 Dimensions.get("window").width 并使 currWidth 可观察?
@observer
export class ChartSTMWork extends Component {
@observable currwidth = Dimensions.get("window").width;
someTimerEvery200ms(){
currwidth = Dimensions.get("window").width
}
}
但是这个解决方案看起来像肮脏的解决方案。
我需要如何以正确的方式处理这个问题?
用这个方法解决。也许对某人有帮助
eventToDemension = Dimensions.addEventListener("change", (e) => {
this.currwidth = e.window.width;
});
@observable currwidth = Dimensions.get("window").width;
你能解释一下在使用 mobX 的 React Native 应用程序中处理方向变化的正确方法吗? 现在我尝试做这样的事情:
@observer
export class ChartSTMWork extends Component {
currwidth = Dimensions.get("window").width;
render() {
this.currwidth = Dimensions.get("window").width;
return();
}
}
但是此代码仅在渲染调用时才更改 currWidth。在我已经渲染 table 并在此渲染后更改智能手机方向的情况下,对 currWidth 变量没有影响。
或者我可能需要使用一些小计时器来检查 Dimensions.get("window").width 并使 currWidth 可观察?
@observer
export class ChartSTMWork extends Component {
@observable currwidth = Dimensions.get("window").width;
someTimerEvery200ms(){
currwidth = Dimensions.get("window").width
}
}
但是这个解决方案看起来像肮脏的解决方案。
我需要如何以正确的方式处理这个问题?
用这个方法解决。也许对某人有帮助
eventToDemension = Dimensions.addEventListener("change", (e) => {
this.currwidth = e.window.width;
});
@observable currwidth = Dimensions.get("window").width;