【发布时间】:2018-01-25 15:00:07
【问题描述】:
我正在使用react-navigation 模块并定义了以下屏幕路由:
import React, {Component} from 'react';
import { AppRegistry } from 'react-native';
import { TabNavigator } from 'react-navigation';
import HomeScreen from './src/ScreenDashboard';
import TodosScreen from './src/ScreenTodos';
import ContactsScreen from './src/ScreenContacts';
// Defining navigation (using tabbed navigation style)
const AppWithNavigation = TabNavigator(
{
Home: { screen: HomeScreen },
Todos: { screen: TodosScreen },
Contacts: { screen: ContactsScreen }
},
{
...
}
如果我尝试将过渡添加到任何其他屏幕,我必须通过以下方式进行:
const { navigate } = this.props.navigation; // child component reading navigation from its props
<Button onPress={ () => navigate('Todos') } />
但问题是,我不想转换到我的 Todos 组件屏幕,我有另一个组件 Appointments,我想转换到那个组件。我怎样才能做到这一点?好像我在TabNavigator() 中包含了它的路线,这将开始在我的导航中显示其他选项卡(我不想显示)。
当我想在点击添加、编辑、搜索按钮时进行屏幕导航时,同样的逻辑适用。这些不能在导航路线中定义(以便使它们在主导航中可见)。我希望你能理解我的问题。
在 web ReactJS 中我们只是简单地定义了路由,这很不错,但是这里不知道如何管理这些东西。
基本上,当我单击主屏幕上的任何条带时,我想切换屏幕。
【问题讨论】:
标签: reactjs react-native react-router react-navigation