将值从一个屏幕移动到另一个屏幕错误:未定义不是对象(评估“route.params.message”)

2023-11-21

我试图通过将值从一个屏幕携带到另一个屏幕来以本机反应从一个屏幕导航到另一个屏幕,但是我收到了上述错误。理想情况下,我想从平面列表中发送值,我试图实现一个可点击的平面列表,它将参数从选定的行传递到另一个屏幕。

//索引.js

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

const ComponentsScreen = ({ navigation }) => {

  //example for detail scree
  return (
    <View>
    <FlatList
           data={[
             { key: 'Task 1' },
             { key: 'Task 2' },
             { key: 'Task 3' },
             { key: 'Task 4' },
             { key: 'Task 5' },
           ]}
           renderItem={({ item }) => {
               return (
                 <TouchableHighlight
                        onPress={() =>
                        navigation.navigate('Next', { message: 'hello from screen 1' })}
                 >
                      <Text >{item.key}</Text>
                 </TouchableHighlight>
               );
             }
           }

    />

    <Button
        onPress={() => navigation.navigate('NextScreen')}
        title="Go to ImageScreen"
    />
    </View>
  );
};
const styles = StyleSheet.create({
textStyle: {
  fontSize: 30
}
});

export default ComponentsScreen;

//NextScreen.js

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

//example for detail screen
const NextScreen = (route) => {
const { message } = route.params;

    return (
        <View>
          <Text>message: {JSON.stringify(message)}</Text>
        </View>
    );
};

export default NextScreen;

app.js

import React, { Component } from 'react';
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import Index from './screens/Index';
import NextScreen from './screens/NextScreen';


const navigator = createStackNavigator({
  Home: Index,
  Next: NextScreen
},
{
  initialRouteName: 'Home',
  defaultNavigationOptions: {
    title: 'App'
  }
}
);

export default createAppContainer(navigator);

如果您想接收一个屏幕到另一个屏幕的参数,您需要使用getparam函数,例如:const message = navigation.getParam('message');

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将值从一个屏幕移动到另一个屏幕错误:未定义不是对象(评估“route.params.message”) 的相关文章

随机推荐