首页 > 解决方案 > 为所有组件 React-Native 不设置标题

问题描述

我有 4 个组件都已static navigationOptions = {header: null}定义。但是在每个组件中定义它非常耗时。所以我{header: null}在 createStackNavigator 中定义,但标题仍然出现在组件的顶部。

你们能帮忙吗?

import { createStackNavigator } from 'react-navigation';
import Home from './Components/Home';
import Main from './Components/Main';
import SubjectDetail from './Components/AnimalSubject';
import Lesson from "./Components/Lesson";

const App = createStackNavigator({
     First: { screen: Home },
     Second: { screen: Main },
     Third: { screen: SubjectDetail },
     Four: {screen: Lesson},
//Route name with specified component
},
{
     transitionConfig: () => ({ screenInterpolator: () => null }),
//remove transition config
},
{
     initialRouteName: 'First',
//the component name 'Home' will be initiated first
},
{
     header: null
//defined header: nul
}
);

export default App;

我的环境

"react": "16.3.1",
"react-native": "~0.55.2",
"react-navigation": "^2.2.5",
"node": "v8.11.2"
"npm": "v6.1.0"

标签: javascriptreactjsreact-nativereact-navigation

解决方案


可能这段代码应该适合你(基于Stack navigator docs

const App = createStackNavigator({
     First: { screen: Home },
     Second: { screen: Main },
     Third: { screen: SubjectDetail },
     Four: {screen: Lesson},
},
{
     headerMode: 'none',
     transitionConfig: () => ({ screenInterpolator: () => null }),
     initialRouteName: 'First',
},
);

您应该将带有路由的对象作为第一个参数,将常用选项作为第二个参数。


推荐阅读