为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不导航到另一个屏幕的情况下将信息从一个屏幕发送到另一个屏幕?

如何在不导航到另一个屏幕的情况下将信息从一个屏幕发送到另一个屏幕?

智慧大石 2022-05-22 11:05:19
我是 React Native 的新手,我一直在尝试制作一个活动组织者,如果你注册一个活动,它会被添加到另一个包含你的日程安排的页面。但是,我一直在查看文档,我似乎无法找到如何在不实际导航到另一个屏幕的情况下将数据从一个屏幕发送到另一个屏幕。换句话说,我想要这个navigation.navigate('Schedule', {name: eventName, time: eventTime});但没有导航。
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

以下是一些建议:


1. AsyncStorage:您可以将它们保存到 AsyncStorage(这是手机上硬件支持的安全存储),并且可以随时检索它们。假设用户的日程安排是这些事件的数组,例如:


var a = [{ name: eventName, time: eventTime }, { name: eventName, time: eventTime }]

你可以这样做:


AsyncStorage.setItem('Schedule', JSON.stringify(a));

AsyncStorage.getItem('Schedule');

见:https ://github.com/react-native-community/async-storage

2.后端

将事件保存到后端服务器并从其他页面检索它们。

3. Redux 或 React Hooks(高级) https://medium.com/swlh/react-global-state-with-hooks-f163e49f90f9 https://redux.js.org/introduction/getting-started/

4. 带 React Hooks 的全局状态

我最喜欢的使用内置 React Hooks 管理全局状态的新方法


查看完整回答
反对 回复 2022-05-22
?
慕慕森

TA贡献1856条经验 获得超17个赞

您可以拥有一个全局对象来存储屏幕之间的共享数据。即使您阅读Redux文档,redux 的使用案例之一是当您有一些数据要在不同屏幕之间共享时。


所以这是全局对象的代码(单例模式)


export class GlobalState {

  public static getInstance(): GlobalState {

    if (GlobalState.instance == null) {

      GlobalState.instance = new GlobalState()

    }

    return GlobalState.instance

  }

private state: IGlobalState = this.restoreDefaultState()

private restoreDefaultState(): IGlobalState {

    return (

      {

        // your properties are placed here

      }

    )

  }

}

用法:


GlobalState.getInstance() ... //call any function placed there

注意:上面的代码是TypeScript用JS.


查看完整回答
反对 回复 2022-05-22
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信