当前位置: 首页 > 面试题库 >

使用React-Native导航传递数据

墨雨华
2023-03-14
问题内容

我试图在我的应用程序的屏幕之间传递数据。目前我正在使用

"react-native": "0.46.0",
"react-navigation": "^1.0.0-beta.11"

我有我的index.js

 import React, { Component } from 'react';
    import {
      AppRegistry,
    } from 'react-native';
    import App from './src/App'
    import { StackNavigator } from 'react-navigation';
    import SecondScreen from './src/SecondScreen'

    class med extends Component {
      static navigationOptions = {
        title: 'Home Screen',
      };

      render(){
        const { navigation } = this.props;

        return (
          <App navigation={ navigation }/>
        );
      }
    }

    const SimpleApp = StackNavigator({
      Home: { screen: med },
      SecondScreen: { screen: SecondScreen, title: 'ss' },    
    });

    AppRegistry.registerComponent('med', () => SimpleApp);

应用为

    import React, { Component } from 'react';
    import {
      StyleSheet,
      Text,
      Button,
      View
    } from 'react-native';
    import { StackNavigator } from 'react-navigation';

    const App = (props)  => {
      const { navigate } = props.navigation;

      return (
        <View>
          <Text>
            Welcome to React Native Navigation Sample!
          </Text>
          <Button
              onPress={() => navigate('SecondScreen', { user: 'Lucy' })}
              title="Go to Second Screen"
            />
        </View>
      );
    }

    export default App

然后在secondscreen.js中,我们将从前一个屏幕获取的数据作为

    import React, { Component } from 'react';
    import {
      StyleSheet,
      Text,
      View,
      Button
    } from 'react-native';

    import { StackNavigator } from 'react-navigation';


    const SecondScreen = (props)  => {
      const { state} = props.navigation;
      console.log("PROPS" + state.params);


      return (
        <View>
          <Text>
            HI
          </Text>

        </View>
      );
    }

    SecondScreen.navigationOptions = {
      title: 'Second Screen Title',
    };

    export default SecondScreen

每当我console.log我得到未定义。
https://reactnavigation.org/docs/navigators/navigation-
prop

文档说每个屏幕都应该具有这些值,我在做什么错呢?


问题答案:

在您的代码中,props.navigation和this.props.navigation.state是两件事。您应该在第二个屏幕中尝试以下操作:

const {state} = props.navigation;
console.log("PROPS " + state.params.user);

const {state}行仅在这里得到易于阅读的代码。



 类似资料:
  • 本文向大家介绍React Native react-navigation 导航使用详解,包括了React Native react-navigation 导航使用详解的使用技巧和注意事项,需要的朋友参考一下 一、开源库介绍 今年1月份,新开源的react-natvigation库备受瞩目。在短短不到3个月的时间,github上星数已达4000+。Fb推荐使用库,并且在React Native当前最

  • 我试图理解为什么我的API响应数据没有显示出来。我已经用console.log测试了我的响应数据是否正确。 在我的TopCryptoList.js组件中,我试图根据我的API调用响应数据在平板列表上显示数据。结果数据应该来自发生API调用的useResults.js文件。出于某种原因,我无法从useResults.js获取“结果”数据到我的TopCryptoList.js组件。 我是不是错过了什么

  • 我正在尝试安装一个导航抽屉。关于安装react native reanimated first和I installed的文档说明。然后我安装了抽屉,但出现了一个错误 npm错误!代码ERE解决npm错误!ERESOLVE无法解析依赖关系树npm错误!npm错误!解析时:应用程序_mobile@0.0.1npm错误!发现:反应本机-reanimated@2.3.0-beta.3 npm错误!节点\模

  • 即时消息使用本机推送通知https://github.com/zo0r/react-native-push-notification 如何将推送消息(聊天)传递到通知中? 我应该做哪一部分? ps:我不明白这是怎么回事-

  • 我已经开始使用Android架构组件(导航和安全参数、视图模型)以及Koin库。 目前,我在两个片段之间传递参数时遇到了一个问题——我需要将字符串值从片段a传递到片段B,在片段B中修改该值,然后将其传递回片段a。 我找到了一个解决问题的可能方法——共享视图模型。不幸的是,这种方法有一个问题,因为我可以在屏幕之间传递和修改值,但是当片段A导航到另一个目的地时,共享视图模型中的值仍然被存储并且没有被清

  • 我无法将数据从Java·activity传递给react Native。我正在处理一个卡片支付,当支付完成时,响应存储在一个名为message的变量中。我需要将此消息传递给我的react本机代码。 //Java模块,我要传递的数据在“消息”中 公共类HelloWorldModule扩展ReactContextBaseJavaModule实现ActivityEventListener{activit