【发布时间】:2019-08-28 11:47:19
【问题描述】:
我的路由器设置如下
import { createAppContainer, createDrawerNavigator, createStackNavigator, createSwitchNavigator } from "react-navigation";
import Home from "./components/Home";
import Search from "./components/Search";
import Map from "./components/Map";
import Login from "./components/Login";
import ForgotPassword from "./components/ForgotPassword";
import SideMenu from "./SideMenu";
const DashboardStack = createStackNavigator(
{
Home: { screen: Home },
Search : {screen : Search}
}
);
const MapStack = createStackNavigator(
{
Map: { screen: Map },
}
);
const AuthStack = createStackNavigator(
{
Login: { screen: Login },
ForgotPassword: { screen: ForgotPassword },
}
);
export const DrawerStack = createDrawerNavigator(
{
Dashboard: { screen: DashboardStack },
Map: { screen: MapStack },
},
{
contentComponent: SideMenu,
drawerWidth: 250
}
);
export const AppNavigator = createStackNavigator(
{
Drawer: { screen: DrawerStack },
Auth: { screen: AuthStack },
},
{
// initialRouteName: "Drawer",
headerMode: 'none',
mode: 'modal',
}
);
export default createAppContainer(DrawerStack);
一切正常,只是一个小问题。当我从主页导航到搜索屏幕然后切换到带有参数的地图屏幕时,这些参数没有到达地图屏幕。
我目前的设置是codepan
【问题讨论】:
-
查看您将“名称:'Janak'”传递给 Map 的代码,是您没有找到的值吗?或者你能通过吗?
-
是的,我无法在该地图中获得该值,这是我找不到的一些愚蠢的错误,通常如果它们在同一个堆栈中,我们可以得到,但在这里我们有不同的堆栈所以不确定。
-
难道只是你必须在名称周围加上“”吗?喜欢
this.props.navigation.navigate('Map', { "name": 'Janak' }); -
我根据您的建议更改了它并删除了“”但不起作用
-
我说要加,不要删,至少看codepen
标签: react-native parameter-passing navigation-drawer react-navigation