如何从本机中的另一个组件访问组件的状态?

时间:2019-07-17 08:48:45

标签: android react-native redux state setstate

我正在使用geolocation API访问位置数据并将其存储在名为Location.js的组件的状态内,但是我想从另一个独立的组件(例如Slider.js)访问状态。访问状态的最简单,最快的方法是什么?我是beginner。任何帮助将不胜感激。即,如何在某种意义上使状态“全局”,因为除了Location之外,我还有其他一些组件想要访问Slider的状态。 有10个组件将使用location state的{​​{1}},然后我将不得不使用位置数据和来自Location.js的一些数据来执行POST操作。

我做了一些研究-

  • 有人建议通过道具发送状态数据,但是我从不使用Slider组件内的Slider组件。如果可以做到,请详细说明。

  • 我在某处找到关于Location的信息,这对您有什么帮助?以及我如何确定我真的需要它?如果是,那么任何人都可以简要解释一下吗?

3 个答案:

答案 0 :(得分:0)

您好,我认为没有将Redux和其他状态管理库用于中小型应用程序开发。

  • Redux用于构建中小型的大规模应用程序。

  • 要访问位置数据,可以将其设置为服务文件,然后将其访问到任何地方。

答案 1 :(得分:0)

您要问的问题并非特定于React Native,但可能会问到有关用ReactJS编写的常规Web应用程序(之所以这样说,是因为通常在更大的ReactJS社区中更容易找到教程等)

话虽这么说,您有两种选择:

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

我希望这会有所帮助;)

答案 2 :(得分:0)

很多时候,Redux过度使用,学习曲线陡峭。您可以查看XSM。这很容易拿起并且不会妨碍您。将满足您跨组件的数据共享需求。