如何在 react-native 中从另一个组件访问组件的状态?

How to access the state of a component form another component in react-native?

我正在使用 geolocation API 访问位置数据并将其存储在名为 Location.js 的组件的状态中,但我想从另一个独立组件访问状态 [=12] =].访问状态的最简单和最快的方法是什么?我是一个beginner。任何帮助将不胜感激。即,如何在某种意义上创建状态 "global",因为除了 Slider 之外,我还有一些其他组件想要访问 Location 的状态。 有 10 个组件将使用 Location.jslocation state,然后我将不得不使用位置数据和来自 Slider 的一些数据执行 POST 操作。

我做了一些研究 -

你好,我的意见是不使用 Redux 和其他状态管理库进行中小型应用程序开发。

  • Redux 用于为中小型应用程序构建大型应用程序,没有必要。

  • 要访问位置数据,您可以将其设置为服务文件并在任何地方访问此数据。

你问的问题不是 React Native 特有的,但它可能是关于用 ReactJS 编写的常规网络应用程序的问题(我这样说是因为在更大的社区中通常更容易找到教程等) ReactJS)

也就是说你有两个选择:

  1. 由于您的组件是独立的,您可以考虑创建一个包装器组件,通常称为高阶组件 (HOC),它将包含这两个组件。您应该在 HOC 组件中存在地理定位调用,并通过 props 将其发送到任何需要它的子组件。
  2. 使用状态管理工具——Redux 是 React 世界中最流行的状态管理工具,但它并不是唯一的。另一个非常流行的是 MobX。您可以将状态管理工具想象成覆盖整个应用程序的保护伞。您可以在任何组件中访问存储在 Redux 中的状态,无论您的应用程序的 parent-child 结构是什么。 Redux 被认为具有复杂的 bootstrap,如果您决定尝试一下,我强烈建议您学习 Egghead.io 上的免费课程:https://egghead.io/courses/getting-started-with-redux 该课程由 Dan Abramov 创建, Redux 的实际创建者:)

希望对您有所帮助 ;)

很多时候,Redux 是矫枉过正并且学习曲线陡峭。你可以看看XSM。它很容易拿起并且不会妨碍。将满足您跨组件共享数据等需求。