如何在屏幕方向发生变化时捕捉到与 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;