【问题标题】:React Native how to pass prop to Another Screen Without Going to that screenReact Native 如何在不转到该屏幕的情况下将道具传递到另一个屏幕
【发布时间】:2021-02-19 20:43:55
【问题描述】:

简单直接的问题,此代码用于将道具从一个屏幕传递到另一个屏幕并转到该屏幕,此代码对我有用:

this.props.navigation.navigate('RouteName', { refresh: yes })   

但是这段代码也将我导航到那个屏幕。我想将道具传递到屏幕但不进入该屏幕。该怎么做?

【问题讨论】:

    标签: react-native react-native-navigation


    【解决方案1】:

    基本上,如果您使用 navigation.navigate 函数,则意味着您正在导航到下一个屏幕并将道具作为参数传递给另一个屏幕。

    但是,如果您只是想存储数据以供将来使用而不导航到不同的屏幕,那么您可以使用 async-storage 来保存数据并随时使用它

    例子

    从“@react-native-async-storage/async-storage”导入 AsyncStorage;

    存储数据

    const storeData = async (value) => {
      try {
        await AsyncStorage.setItem('refresh', "yes")
      } catch (e) {
        // saving error
      }
    }
    

    读取数据

    const getData = async () => {
      try {
        const value = await AsyncStorage.getItem('refresh')
        if(value !== null) {
          // value previously stored
        }
      } catch(e) {
        // error reading value
      }
    }
    

    通过使用 async-storage,您可以从任何屏幕访问这些值。你甚至可以使用 redux。

    如果您使用 async-storage,请确保安装依赖项。

    我希望这会有所帮助。祝你好运!

    【讨论】:

    • 谢谢你这是我需要的。我只是有一个问题,在内部读取数据中,如果在我们称为刷新的案例中,我将如何控制台记录项目值。 ?它是console.log(值)吗?是 console.log(refresh) 是控制台吗?日志(项目)?
    • 当你运行 getData 函数时,值将像这样保存在 const 中 ** const refresh = await AsyncStorage.getItem('refresh') ** 然后你可以执行 console.log(refresh) 到使用该值。
    猜你喜欢
    • 2017-11-22
    • 2020-10-14
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    相关资源
    最近更新 更多