【问题标题】:react native how to check if Component current show in screen反应原生如何检查组件当前是否显示在屏幕中
【发布时间】:2016-12-29 21:23:28
【问题描述】:

在我的 React native 项目中,我需要检查组件何时显示在屏幕中以通过后台线程更新 UI。

我查看了组件道具规格并尝试了componentWillUnmount,componentWillMount,但它不适用于我的情况。

我也尝试过使用navigator.getCurrentRoutes(),但它返回空对象。

请帮我解决这个案子!

【问题讨论】:

  • 为什么componentWillMount/componentWillUnmount 不起作用?这看起来是正确的做法。
  • 你能提供更多关于你的 reactNative 项目的信息吗?一般情况下,componentWillMount 是正确的做法。
  • @ManoloSantos 我使用 F8 示例,登录 componentWillMount/componentWillUnmount ,但显示的唯一内容是 componentWillMount,导航到另一个屏幕并返回此屏幕后,没有任何反应,我想检查什么时候特别屏幕中显示的组件电流。
  • @JeffPChacko componentWillMount 工作正常,但它会发生一次,当我导航到另一个屏幕并且当前屏幕隐藏时,我如何检查组件是隐藏还是显示?

标签: reactjs react-native react-router


【解决方案1】:

如果你使用 react-navigation 你可以试试 useFocusEffect useFocusEffect

但是如果你不使用它,你可以订阅一个View的onLayout事件。每当您的组件被挂载或屏幕布局发生变化时,它都会触发。 React Native onLayout

【讨论】:

  • 这个问题是 5 年前提出的。 react-navigation repo 的第一次提交是在 2017 年,所以我怀疑 OP 是否在使用它。他可能一直在使用wix 的替代方案。
  • @Moistbobo:很好。也就是说,如果这为今天遇到类似问题的人提供了解决方案,我不确定当 OP 最初提出问题时它是否相关。
  • @JeremyCaney 可以理解,感谢提醒我stackoverflow 的用途。
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
猜你喜欢
  • 1970-01-01
  • 2020-05-02
  • 2018-07-27
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多