没有为所有组件设置头标React-Native

时间:2018-06-25 06:18:14

标签: javascript reactjs react-native react-navigation

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

你们能帮忙吗?

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"

1 个答案:

答案 0 :(得分:3)

此代码可能应该对您有用(基于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',
},
);

您应该以路由为第一个参数并以通用选项为第二个参数传递对象。