[[错误]] undefined不是对象(评估' _this2.props.navigation.push')

时间:2018-05-31 01:19:21

标签: javascript reactjs react-native react-navigation

伙计我遇到这个问题我无法解决,我尝试了很多东西,但这个错误对我来说很明显。所以我迷路了,请帮助我

这在主(路线):App.js

DECLARE @strQuery as varchar(MAX)

SET @strQuery = ''

SELECT @strQuery = @strQuery + 'DROP TABLE [' + TABLE_NAME + '];' FROM [Table Q] 

EXEC(strQuery)

LoginScreen.js - >登录屏幕

const Router = createStackNavigator(
  {
    Login: {screen: LoginScreen},
    Julia: {screen: JuliaScreen},
  },
  {
    initialRouteName: 'Login',
    headerMode: 'none',
  }
)

LoginForm.js - >登录组件(登录表单)

          <View style = {styles.formContainer}>

              <LoginForm/>

          </View>

1 个答案:

答案 0 :(得分:0)

根据您的Router声明,LoginForm不属于navigator,且不会引用navigation个对象。一种方法是在navigation组件中呈现LoginForm时传递LoginScreen对象,例如

<LoginForm navigation={this.props.navigation}/>

但这种方法不好。还有另一种更好的方法可以使navigation对象可用于不属于navigator的组件。该函数是withNavigation。请查看官方文档here

您只需将LoginForm组件包裹在withNavigation内,例如

import { withNavigation } from 'react-navigation';
...
class LoginForm extends ... {
    ...
}
export default withNavigation(LoginForm);

希望这会有所帮助!