【问题标题】:Is there a way we can share Redux states between React and React Native有没有办法我们可以在 React 和 React Native 之间共享 Redux 状态
【发布时间】:2020-04-26 05:50:09
【问题描述】:

我们有一个用于移动平台的 React Native 应用程序和一个用于 Web 的 React 应用程序,我们在这两个平台上都使用 redux 进行状态管理,我们正在考虑在 react native 中使用 webviews,这些应用程序将从内部的 react 包本地提供APK 我想检查当通过 WebView 进行通信时,是否可以通过 window.postmessage 在 react native 和 react local 捆绑组件之间连接 reducer 状态。

理论上是否可行但不可行也是我们正在研究的问题,因为我们不想仅仅为了重用而维护应用程序。

我正在关注这个用例的一些链接。这更像是一个可能的问题,请让我知道从哪里开始。

https://github.com/blankg/rn-webview-bridge-sample-new/blob/master/android/app/src/main/assets/index.html

https://medium.com/capriza-engineering/communicating-between-react-native-and-the-webview-ac14b8b8b91a

【问题讨论】:

    标签: reactjs react-native redux webview


    【解决方案1】:

    我们构建的其中一个解决方案也有相同的要求。

    据我所知,我们无法同时为应用程序(即移动设备和网络)维护一个单一的 redux 存储,因为它们是彼此分离的 2 个不同的客户端。

    但是,您仍然可以在通过 webviews 加载网页时与每个客户端进行通信。我们采用的方法是通过 URL 参数发送数据。并使用 reactJS 中的路由来提取数据并根据参数解释的要求呈现网页。

    <WebView 
        source={{ uri: 'https://m.domain.com/true/sv-FI/updateDetails' }} 
    />;
    
    • false 表示 url 是从 webview 请求的
    • sv-FI 是说 react-native 应用的本地化设置为瑞典语(芬兰)。所以 react 应用程序提供瑞典语翻译网页
    • ....其余参数。

    当然,您在这种方法中可能存在局限性。

    可能对您有用的链接 - How To Pass Multiple Route Parameters in a React URL Path

    【讨论】:

    • 所以基本上你是说我们不能使用 react redux 连接到跨 RN 的状态并做出反应。同样通过这种方式,您已经提到状态将与 RN(如果需要)一样做出反应,这就是我推断的。此外,所有获取数据的逻辑都将由 webview 内部的 react 管理。我的理解正确吗?
    • 是的,你是对的。你需要在 react app 和 RN app 中维护 2 个 redux store。并且可以通过 url 参数进行通信,以传递所需的 RN 应用程序状态以响应应用程序
    猜你喜欢
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2021-04-06
    • 2019-01-31
    • 1970-01-01
    • 2020-01-10
    • 2016-03-22
    相关资源
    最近更新 更多