首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StackNavigator不能从DrawerNavigator访问

StackNavigator不能从DrawerNavigator访问
EN

Stack Overflow用户
提问于 2018-04-12 16:12:02
回答 1查看 263关注 0票数 0

我正在创建一个包含两个部分的故事应用程序--爱情故事和笑话,我使用抽屉导航器为这两个部分服务。当用户使用抽屉导航器输入“爱情故事”或“笑话”时,他们可以看到基于所选内容的爱情故事或笑话列表。点击一个特定的项目,它会显示一个爱情故事或一个笑话的细节。抽屉导航成功运行,但当我尝试输入列表项的详细信息时,它将显示以下错误:

代码语言:javascript
复制
Undefined is not an object (evaluating '_this3.prop.navigation.navigate) 

PostList.js:

代码语言:javascript
复制
render() {
return (
  <View>
    <Header
      headerText = {this.props.headerText}
    />
    <ScrollView>
      {this.renderPosts()}
    </ScrollView>
  </View>
 );
}

renderPosts() {
  return this.state.posts.map(p=>(
    <View key={p.id}>
      <Card>
        <Button
          title="Go to Jane's profile"
          onPress={() =>
            {this.props.navigation.navigate('PostDetail')}  //error is generated here
          }
        />
      </Card>
    </View>
    )         
  )
 }       
}

App.js:

代码语言:javascript
复制
export const Drawer = DrawerNavigator (
  {
 LoveStory: {
   screen: (props)=> <PostList 
                       headerText = 'Love Story'
                       blogId = '5278762286036727816'
                       apiKey = 'AIghSyDzawc245f4_sgIv8lSucdp7yJs__O29Qw'
                     />,
   navigationOptions: {
       drawerLabel: 'Love Story',
   },
 },
 Jokes: {
    screen: (props)=> <PostList 
                       headerText = 'Jokes'
                       blogId = '3124493334962174072'
                       apiKey = 'AIbJXRBgxJZvBQzaSyJAyq4_irQ-2OCOkFyrpH8'
                     />,
   navigationOptions: {
       drawerLabel: 'Jokes',
   },
 },},{
initialRouteName: 'LoveStory',
drawerPosition: 'left',
});

export const StackNav = StackNavigator(
{
  Main: {
    screen: Drawer
  },
  PostDetail: {
    screen: PostDetail,
  }
  },{
    headerMode: 'none'
  });

index.js:

代码语言:javascript
复制
import { AppRegistry } from 'react-native';
import {StackNav} from './App';

AppRegistry.registerComponent('golpo_app', () => StackNav);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-12 17:38:09

您没有将navigation支柱传递给您的PostList组件。

要解决这个问题,请在App.js中更改它:

代码语言:javascript
复制
   screen: (props)=> <PostList 
                       headerText = 'Love Story'
                       blogId = '5278762286036727816'
                       apiKey = 'AIghSyDzawc245f4_sgIv8lSucdp7yJs__O29Qw'
                     />,

代码语言:javascript
复制
   screen: (props)=> <PostList 
                       headerText = 'Love Story'
                       blogId = '5278762286036727816'
                       apiKey = 'AIghSyDzawc245f4_sgIv8lSucdp7yJs__O29Qw'
                       {...props}
                     />,

代码语言:javascript
复制
   screen: (props)=> <PostList 
                       headerText = 'Love Story'
                       blogId = '5278762286036727816'
                       apiKey = 'AIghSyDzawc245f4_sgIv8lSucdp7yJs__O29Qw'
                       navigation = {props.navigation}
                     />,
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49801331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档