Typescript 错误:使用Expo、Navigation和#x27进行本地响应';navigation.navigate不是一个函数;
我正在使用Expo(Typescript)和Ract导航创建一个简单的React原生应用程序。 我定义了两个屏幕,登录和主页,当我尝试从登录导航到主页时,会产生一个错误: TypeError:navigation.navigate不是函数。(在“navigation.navigate('Home')”中,“navigation.navigate”未定义) 我的主要代码: App.tsxTypescript 错误:使用Expo、Navigation和#x27进行本地响应';navigation.navigate不是一个函数;,typescript,react-native,navigation,expo,Typescript,React Native,Navigation,Expo,我正在使用Expo(Typescript)和Ract导航创建一个简单的React原生应用程序。 我定义了两个屏幕,登录和主页,当我尝试从登录导航到主页时,会产生一个错误: TypeError:navigation.navigate不是函数。(在“navigation.navigate('Home')”中,“navigation.navigate”未定义) 我的主要代码: App.tsx import React, {useState} from 'react'; import { Navigat
import React, {useState} from 'react';
import { NavigationContainer, StackActions } from '@react-navigation/native';
import Navigator from './Components/Navigator';
export default class App extends React.Component {
render(){
return (
<NavigationContainer>
<Navigator/>
</NavigationContainer>
);
}
}
import React from 'react'
import { createStackNavigator } from '@react-navigation/stack'
import Login from '../Views/Login'
import Home from '../Views/Home'
const Stack = createStackNavigator();
const Navigator= () =>{
return (
<Stack.Navigator>
<Stack.Screen name="Login" component={Login} />
<Stack.Screen name="Home" component={Home} options={{title:'Home.'}}/>
</Stack.Navigator>
);
}
export default Navigator;
import React,{useState}来自“React”;
从'@react navigation/native'导入{NavigationContainer,StackActions};
从“./Components/Navigator”导入导航器;
导出默认类App扩展React.Component{
render(){
返回(
);
}
}
Navigator.tsx
import React, {useState} from 'react';
import { NavigationContainer, StackActions } from '@react-navigation/native';
import Navigator from './Components/Navigator';
export default class App extends React.Component {
render(){
return (
<NavigationContainer>
<Navigator/>
</NavigationContainer>
);
}
}
import React from 'react'
import { createStackNavigator } from '@react-navigation/stack'
import Login from '../Views/Login'
import Home from '../Views/Home'
const Stack = createStackNavigator();
const Navigator= () =>{
return (
<Stack.Navigator>
<Stack.Screen name="Login" component={Login} />
<Stack.Screen name="Home" component={Home} options={{title:'Home.'}}/>
</Stack.Navigator>
);
}
export default Navigator;
从“React”导入React
从“@react navigation/stack”导入{createStackNavigator}
从“../Views/Login”导入登录名
从“../Views/Home”导入主页
const Stack=createStackNavigator();
常量导航器=()=>{
返回(
);
}
导出默认导航器;
Login.tsx(按下按钮时,如果输入有值,则导航到Home.tsx)
import React,{useState}来自“React”
从“react native”导入{文本、文本输入、视图、图像、按钮}
从“./styles/LoginStyles”导入样式
常量登录=(导航)=>{
const[result,setResult]=useState(false);
const[userName,setUserName]=useState(“”);
const[password,setPassword]=useState(“”);
报税表(
欢迎
setUserName(txt)}style={styles.txtInputsLog}/>
setPassword(txt)}style={styles.txtInputsLog}secureTextEntry={true}/>
(userName.length>0和password.length>0)?navigation.navigate('Home'):setResult(!result)}/>
{result?Usuario:{userName},Password:{Password}:null}
);
}
导出默认登录;
完整工作应用程序:
import React,{useState}来自“React”;
从“react native”导入{文本、文本输入、视图、图像、按钮、样式表};
常量登录=({navigation})=>{
const[result,setResult]=useState(false);
const[userName,setUserName]=useState(“”);
const[password,setPassword]=useState(“”);
返回(
欢迎
setUserName(txt)}
style={styles.txtInputsLog}
/>
设置密码(txt)}
style={styles.txtInputsLog}
secureTextEntry={true}
/>
userName.length>0&&password.length>0
?导航。导航(“主页”)
:setResult(!result)
}
/>
{结果如何(
Usuario:{userName},Password:{Password}
):null}
);
};
导出默认登录;
它不工作,几乎相同的错误这里是工作代码链接。没问题。是的,现在可以了,谢谢!