【发布时间】:2020-04-30 03:37:38
【问题描述】:
我正在开发一个电子书/有声书应用程序。我目前在 BottomTabNavigator 中有三个屏幕,该导航器嵌套在堆栈导航器中,因此我可以显示标题:
import { createAppContainer } from "react-navigation";
import { createStackNavigator } from "react-navigation-stack";
import { createBottomTabNavigator } from "react-navigation-tabs";
import { Entypo, MaterialIcons } from "@expo/vector-icons";
import Header from "./src/components/Header";
import HomeScreen from "./src/screens/HomeScreen";
import ListenScreen from "./src/screens/ListenScreen";
import AccountScreen from "./src/screens/AccountScreen";
export const navigator = createStackNavigator(
{
mainFlow: createBottomTabNavigator(
{
Home: HomeScreen,
Listen: ListenScreen,
Account: AccountScreen,
},
),
},
{
defaultNavigationOptions: {
headerTitle: () => <Header />,
headerTitleAlign: "center",
},
}
);
HomeScreen.navigationOptions = {
tabBarIcon: <Entypo name="home" size={30} />,
};
ListenScreen.navigationOptions = {
tabBarIcon: <Entypo name="music" size={30} />,
};
AccountScreen.navigationOptions = {
tabBarIcon: <MaterialIcons name="account-circle" size={30} />,
};
const App = createAppContainer(navigator);
export default () => {
return <App />;
};
我创建了一个自定义标题,但它不会随着标签到标签的变化而改变。有办法解决吗?
【问题讨论】:
-
我在我的一个应用程序中遇到了同样的问题,获取一个状态变量,并在您的屏幕从 HOME 导航到 Listen 时传递它。在收听屏幕中,您必须像活动电子书一样相应地设置您的变量,当您再次返回时,将此参数传递到主屏幕并设置您的活动电子书变量。如果您不明白,请分享您的主页和收听屏幕代码,我会尝试修复它。谢谢
标签: react-native mobile expo stack-navigator react-navigation-bottom-tab