【问题标题】:undefined is not an object (evaluating '(0 _reactnavigation.DrawerNavigator)')undefined 不是一个对象(评估 '(0 _reactnavigation.DrawerNavigator)')
【发布时间】:2019-09-04 07:04:26
【问题描述】:

我创建了自定义侧边栏并有 5 到 6 个屏幕。我正在使用 NativeBase 并希望使用 DrawerNavigator 选项打开侧边栏,但是当我应用以下代码时出现问题。

抽屉导航器代码

import React, { Component } from "react";
import WelcomeScreen from './screens/WelcomeScreen';
import ContactScreen from './screens/ContactScreen';
import DepartmentScreen from './screens/DepartmentScreen';
import EmailServiceScreen from './screens/EmailServiceScreen';
import MoreScreen from './screens/MoreScreen';
import SideBar from "./SideBar.js";
import { DrawerNavigator } from "react-navigation";

const SidebarNavigator = DrawerNavigator(
  {
    Home: { screen: WelcomeScreen },
    Contact: { screen: ContactScreen },
    Department: { screen: DepartmentScreen },
    EmailService: { screen: EmailServiceScreen },
    More: { screen: MoreScreen }
  },
  {
    contentComponent: props => <SideBar {...props} />
  }
);
export default SidebarNavigator;

Calling them in APP.Js as propos. See following code from APP.JS


import SidebarNavigator from './src/SidebarNavigator';

class App extends Component {
  render() {
    const store = createStore(reducers, {}, applyMiddleware(ReduxThunk));
    return (
      <Provider store={createStore(reducers)}>
          <Root>
            <Router /> // It's a stack navigator which is working fine
            <SidebarNavigator />
          </Root>
      </Provider>
    );
  }
}

console.disableYellowBox = true;
export default App;

【问题讨论】:

    标签: react-native react-navigation react-navigation-drawer


    【解决方案1】:

    这里的错误是您使用的是DrawerNavigation 而不是createDrawerNavigator

    只要做这些改变,你就应该很好

    import { createDrawerNavigator } from "react-navigation";
    
    ...
    
    const SidebarNavigator = createDrawerNavigator( ... )
    

    来源:https://reactnavigation.org/docs/en/drawer-navigator.html

    【讨论】:

    【解决方案2】:

    你可以试试这个代码

    您可以使用createDrawerNavigatorcreateAppContainer

    import { createDrawerNavigator, createAppContainer } from "react-navigation";
    
    ...
    
    const SidebarNavigator = createDrawerNavigator( ... )
    
    const AppContainer = createAppContainer(SidebarNavigator);
    
    // Now AppContainer is the main component for React to render
    
    export default AppContainer;
    

    【讨论】:

      猜你喜欢
      • 2022-09-29
      • 2021-12-15
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 2022-09-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多