セットアップしたいReact Native
アプリとside menu
とtab menu
同時に。
私は this チュートリアルに従っていました。
マイコード 。
エラーが発生します:
undefinedは関数ではありません( '...(0、_reactNavigation.TabNavigator)...'の近く)
あなたはここで見ることができます:
一部のファイルのプレビュー:
App.js
import React from 'react';
import { Drawer } from './src/navigators';
export default class App extends React.Component {
render() {
return (
<Drawer />
);
}
}
navigators.js
import React, { Component } from 'react';
import {
StyleSheet,
Text,
View
} from 'react-native';
// Navigators
import { DrawerNavigator, StackNavigator, TabNavigator } from 'react-navigation'
// StackNavigator screens
import ItemList from './ItemList'
import Item from './Item'
// TabNavigator screens
import TabA from './TabA'
import TabB from './TabB'
import TabC from './TabC'
// Plain old component
import Plain from './Plain'
export const Stack = StackNavigator({
ItemList: { screen: ItemList },
Item: { screen: Item },
}, {
initialRouteName: 'ItemList',
})
export const Tabs = TabNavigator({
TabA: { screen: TabA },
TabB: { screen: TabB },
TabC: { screen: Stack },
}, {
order: ['TabA', 'TabB', 'TabC']
})
export const Drawer = DrawerNavigator({
Stack: { screen: Stack },
Tabs: { screen: Tabs },
Plain: { screen: Plain },
})
Reactナビゲーションからのインポートは、使用しているバージョン(3.0.9)では正しくありません。これらの名前付きエクスポートは、フォローしているチュートリアルで使用しているv1の後に名前が変更されました。
インポートしています:
import { DrawerNavigator, StackNavigator, TabNavigator } from 'react-navigation';
それらをインポートする必要がある場合:
import {
createDrawerNavigator,
createStackNavigator,
createBottomTabNavigator,
createAppContainer,
} from 'react-navigation';
また、ルートナビゲーター(この場合はDrawerナビゲーター)をcreateAppContainer
でラップする必要があります。
そのようです:
export const Drawer = createAppContainer(
createDrawerNavigator({
Stack: { screen: Stack },
Tabs: { screen: Tabs },
Plain: { screen: Plain },
})
);
簡単な修正が必要な場合は、package.json
およびReact Navigationfromのバージョンを置き換えます"react-navigation": "^3.0.9"
to"react-navigation": "^1.5.2"
とスナックは期待どおりに実行されます https://snack.expo.io/@chris-bytelion/react-s