TabNavigator没有切换标签。 navigation.navigate不是一个函数

时间:2018-05-07 01:52:41

标签: react-native react-navigation tabnavigator

我刚开始一个新项目并添加了一个TabNavigator。当我点击任一选项卡时,我收到一个红色错误说明:

"navigation.navigate is not a function(In 'navigation/navigate(navigateion.state.routes[index].routeName', 'navigation.navigate' is undefined)"

如果我更改了初始路线,每个标签都会在屏幕上正确显示,并突出显示屏幕底部的正确标签。

export default TabNavigator(
  {
    Home: { screen: HomeScreen },
    Card: { screen: CardScreen },
    Schedule: { screen: ScheduleScreen },
  },
  {
    initialRouteName: 'Home',
  }
);

3 个答案:

答案 0 :(得分:1)

将React-navigation从2.0.0降级到1.0.3解决了这个问题。

答案 1 :(得分:-1)

这是我用来更改标签

这是我的customeTab的定义

<强> const customeTab = ({ navigation }) => {

以下是naviagate的代码:

const routes = navigation.state.routes;
            {routes.map((route, index) => {
                return (
                    <TouchableOpacity
                        activeOpacity={1.0}
                        onPress={() => {
                            navigation.navigate(route.key);
                        }
                        }
                        style={styles.tab}
                        key={route.key}
                    >
         // do you stuff to show title and image.
                    </TouchableOpacity>);
            })
            }

答案 2 :(得分:-1)

我认为问题出在您的导航中。

@bot.command(pass_context=True)
async def hellothere(ctx):
    await bot.say("Hello {}".format(ctx.message.author))

bot.command(name="hello", pass_context=True)(hellothere.callback)

如果您想将一个页面转移到另一个页面,则必须使用导航方法。

在标签之间跳转 从一个标签切换到另一个标签有一个熟悉的API - this.props.navigation.navigate。

import { TabNavigator } from 'react-navigation';
import HomeScreen from "./Home"
import SettingsScreen from "./Settings"

export default TabNavigator({
  Home: { screen: HomeScreen },
  Settings: { screen: SettingsScreen },
});

点击此link。这是一份可以帮助您的官方文档。