React native 在本机导航中指定onPress的名称或键
Expo中出现以下错误:“当使用对象作为参数调用navigate时,需要指定名称或键。” 我有一段调用LoginOptions的主要代码,包括:React native 在本机导航中指定onPress的名称或键,react-native,react-native-navigation,React Native,React Native Navigation,Expo中出现以下错误:“当使用对象作为参数调用navigate时,需要指定名称或键。” 我有一段调用LoginOptions的主要代码,包括: <LoginOptions title="Don't have a business account?" link="Create a free account" press="CreateAccount"/> 我试图通过导航目的地作为一个“变量???-不知道正确的词是什么”
<LoginOptions title="Don't have a business account?" link="Create a free account" press="CreateAccount"/>
我试图通过导航目的地作为一个“变量???-不知道正确的词是什么”。登录选项如下所示:
import React from 'react';
import { View, Text, TouchableWithoutFeedback } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import defaultStyles from "../../config/styles";
function LoginOptions ({title, link, press }) {
const navigation = useNavigation();
return (
<View>
<Text style={defaultStyles.logBold}>
{title}
</Text>
<TouchableWithoutFeedback onPress={() => navigation.navigate({press})} >
<Text style={defaultStyles.logUnder} >
{link}
</Text>
</TouchableWithoutFeedback>
</View>
);
}
export default LoginOptions;
从“React”导入React;
从“react native”导入{View,Text,TouchableWithoutFeedback};
从'@react-navigation/native'导入{useNavigation};
从“../../config/styles”导入默认样式;
函数登录选项({title,link,press}){
const navigation=useNavigation();
返回(
{title}
导航。导航({press}}>
{link}
);
}
导出默认登录选项;
将其作为登录选项的道具传递
<LoginOptions navigation={navigation} title="Don't have a business account?" link="Create a free account" press={"CreateAccount"}/>
然后
从“React”导入React;
从“react native”导入{View,Text,TouchableWithoutFeedback};
从“../../config/styles”导入默认样式;
函数登录选项({title,link,press,navigation}){
返回(
{title}
导航。导航(按)}>
{link}
);
}
导出默认登录选项;
首先,在StackScreen中声明您的屏幕
然后,修复您的导航操作:
onPress={()=>navigation.navigate(“屏幕名youdefinedabove”)}
p/s:我认为您在React Native中使用了ReactJS路由机制。React Navigation对路由有自己的定义,请按照文档操作。您希望执行哪种操作?在外部浏览器中打开新链接或导航到应用程序中的其他屏幕?请转到应用程序中的其他屏幕。
import React from 'react';
import { View, Text, TouchableWithoutFeedback } from 'react-native';
import defaultStyles from "../../config/styles";
function LoginOptions ({title, link, press ,navigation}) {
return (
<View>
<Text style={defaultStyles.logBold}>
{title}
</Text>
<TouchableWithoutFeedback onPress={() => navigation.navigate(press)} >
<Text style={defaultStyles.logUnder} >
{link}
</Text>
</TouchableWithoutFeedback>
</View>
);
}
export default LoginOptions;