在Login.js中按下“登录”按钮时,我试图导航到主屏幕。 LoginForm加载完美,但是当我按下按钮时,我开始收到错误消息“ TypeError:未定义不是对象(正在评估'navigation.navigate')。在这之前没有问题,但是当我将Login移到另一个组件时,它就改变了。遇到了另一个错误,我经历了这个错误,但并没有解决:Getting undefined is not an object evaluating _this.props.navigation 让我知道您是否需要完整的代码。谢谢:)
LoginForm.js
...
import Login from "./Login";
const LoginForm = props => {
return <Login />
}
...
Login.js
const Login = ({ navigation }) => {
return (
<TouchableOpacity
style={{ marginTop: 20 }}
activeOpacity={1}
onPress={() => navigation.navigate("Main")}
>
<View style={styles.loginButtonContainer}>
<Text style={styles.loginButtonText}>Login</Text>
</View>
</TouchableOpacity>
)}
...
答案 0 :(得分:0)
我感谢withNavigation修复了它。 https://reactnavigation.org/docs/en/with-navigation.html
withNavigation 是通过导航的高阶组件 支撑成包裹的组件。当您无法通过时非常有用 导航道具直接进入组件,或者不想通过它 如果是深度嵌套的孩子。
Login.js
import { withNavigation } from 'react-navigation'
const Login = ({ navigation }) => {
...
}
export default withNavigation(Login)
无论如何,如果可能的话,我很想知道如何解决这个问题。