TabNavigator 在 react-native 中不适用于 iOS
TabNavigator doesn't work for iOS in react-native
我无法让 TabNavigator 在 iOS 上工作,尽管它在 Android 上工作得很好。这是我重现问题的步骤
打开终端window。
react-native init tabnav
cd tabnav
rm -rf node_modules
rm -rf package.json
rm -rf package-lock.json
然后我打开package.json
粘贴了以下内容:
{
"name": "tabnav",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"react": "16.0.0-beta.5",
"react-native": "0.49.3",
"react-navigation": "git+https://github.com/react-community/react-navigation.git"
},
"devDependencies": {
"babel-jest": "22.4.1",
"babel-preset-react-native": "4.0.0",
"jest": "22.4.2",
"react-test-renderer": "16.3.0-alpha.1"
},
"jest": {
"preset": "react-native"
}
然后我打开App.js
粘贴了内容:
import React, { Component } from 'react';
import {TabNavigator} from 'react-navigation';
import {
Text,
View
} from 'react-native';
type Props = {};
class Page extends Component<Props> {
render() {
return (
<View style={{flex:1}}>
<Text>
Welcome to React Native!
</Text>
</View>
);
}
}
const Navigator = TabNavigator({
Recent: {screen: Page},
Popular:{screen:Page}
}
);
export default Navigator;
然后我打开 Xcode 项目,清理,运行 项目。
然后我得到这个错误:
undefined is not a function (near
'...(0,_reactNavigation.TabNavigator)...')
为什么选项卡导航器不起作用?
注意:如果我用堆栈导航器替换选项卡导航器的所有实例,错误就会消失。但我需要一个选项卡导航器,而不是堆栈导航器
尝试从 package.json 中删除 react-navigation 软件包,然后安装 react-navigation。希望对你有帮助。
执行此操作后,您会注意到 package.json 将列出 react-natigation 的特定版本,而不仅仅是 link 到存储库
在 v2 以上的 react-navigation 中,引入了一个新的 TabNavigator,您可以使用 createMaterialTopTabNavigator
在屏幕顶部创建 TabNavigator。
import {createMaterialTopTabNavigator} from "react-navigation";
const TabsAB = createMaterialTopTabNavigator({
Tab_A: {
screen: ScreenA,
....
我无法让 TabNavigator 在 iOS 上工作,尽管它在 Android 上工作得很好。这是我重现问题的步骤
打开终端window。
react-native init tabnav
cd tabnav
rm -rf node_modules
rm -rf package.json
rm -rf package-lock.json
然后我打开package.json
粘贴了以下内容:
{
"name": "tabnav",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"react": "16.0.0-beta.5",
"react-native": "0.49.3",
"react-navigation": "git+https://github.com/react-community/react-navigation.git"
},
"devDependencies": {
"babel-jest": "22.4.1",
"babel-preset-react-native": "4.0.0",
"jest": "22.4.2",
"react-test-renderer": "16.3.0-alpha.1"
},
"jest": {
"preset": "react-native"
}
然后我打开App.js
粘贴了内容:
import React, { Component } from 'react';
import {TabNavigator} from 'react-navigation';
import {
Text,
View
} from 'react-native';
type Props = {};
class Page extends Component<Props> {
render() {
return (
<View style={{flex:1}}>
<Text>
Welcome to React Native!
</Text>
</View>
);
}
}
const Navigator = TabNavigator({
Recent: {screen: Page},
Popular:{screen:Page}
}
);
export default Navigator;
然后我打开 Xcode 项目,清理,运行 项目。
然后我得到这个错误:
undefined is not a function (near '...(0,_reactNavigation.TabNavigator)...')
为什么选项卡导航器不起作用?
注意:如果我用堆栈导航器替换选项卡导航器的所有实例,错误就会消失。但我需要一个选项卡导航器,而不是堆栈导航器
尝试从 package.json 中删除 react-navigation 软件包,然后安装 react-navigation。希望对你有帮助。
执行此操作后,您会注意到 package.json 将列出 react-natigation 的特定版本,而不仅仅是 link 到存储库
在 v2 以上的 react-navigation 中,引入了一个新的 TabNavigator,您可以使用 createMaterialTopTabNavigator
在屏幕顶部创建 TabNavigator。
import {createMaterialTopTabNavigator} from "react-navigation";
const TabsAB = createMaterialTopTabNavigator({
Tab_A: {
screen: ScreenA,
....