Javascript 未定义不是对象(评估this.props.navigation.navigate)
我有一个像这样的Javascript 未定义不是对象(评估this.props.navigation.navigate),javascript,react-native,Javascript,React Native,我有一个像这样的router.js: import React from 'react'; import { TabNavigator, StackNavigator } from 'react-navigation'; import Login from '../components/login/Login'; import Activation from '../components/login/Activation'; import Phone from '../components/l
router.js
:
import React from 'react';
import { TabNavigator, StackNavigator } from 'react-navigation';
import Login from '../components/login/Login';
import Activation from '../components/login/Activation';
import Phone from '../components/login/Phone';
import ContainerNavs from '../components/navs/ContainerNavs';
import Notification from '../components/navs/notification/Notification';
import Question from '../components/navs/notification/Question';
export const LoginStack = StackNavigator({
Login: {
screen: Login,
},
Phone: {
screen: Phone,
},
Activation: {
screen: Activation,
}
},
{
headerMode: 'none'
});
export const HomeStack = StackNavigator({
Home: {
screen: ContainerNavs,
},
Notifications: {
screen: Notification,
},
Question: {
screen: Question,
},
},
{
headerMode: 'none'
});
export const Root = StackNavigator({
Login: {
screen: LoginStack,
},
Home:{
screen: HomeStack,
},
},{
mode: 'modal',
headerMode: 'none',
initialRouteName: 'Login',
}
);
ContainerNavs
是来自native base
库的footer选项卡
我的通知
组件在ContainerNavs
内呈现:
renderSelectedTab () {
switch (this.state.selectedTab) {
case 'home':
return (<Home />);
break;
case 'search':
return (<Text>search</Text>);
break;
case 'new':
return (<New />);
break;
case 'notification':
return (<Notification />);
break;
case 'profile':
return (<Profile />);
break;
}
}
但是,当我点击Toast
按钮时,出现了以下错误:
undefined is not an object (evaluation this.props.navigation.navigate)
我想我应该将导航从ContainerNavs
传递到Notification
,通过以下技巧解决:
return (<Notification navigation={this.props.navigation} />);
return();
return (<Notification navigation={this.props.navigation} />);