スタックとタブの両方のナビゲーターを使って画面を切り替えようとしています。
const MainNavigation = StackNavigator({
otp: { screen: OTPlogin },
otpverify: { screen: OTPverification},
userVerified: {
screen: TabNavigator({
List: { screen: List },
Settings: { screen: Settings }
}),
},
});
この場合、stacknavigatorが最初に使用され、次にtabnavigatorが使用されます。そして私はスタックナビゲーターのヘッダーを隠したいです。私は::のようなnavigationoptionsを使用するときそれは正しく動作していません::
navigationOptions: { header: { visible: false } }
私はstacknavigatorで使用している最初の2つのコンポーネントでこのコードを試しています。私はこの行を使用している場合:それからいくつかのようなエラーを取得::
これを使ってスタックバーを隠します(これが2番目のパラメータの値であることに注意してください)。
{
headerMode: 'none',
navigationOptions: {
headerVisible: false,
}
}
この方法を使用すると、すべての画面に表示されなくなります。
あなたの場合は、このようになります。
const MainNavigation = StackNavigator({
otp: { screen: OTPlogin },
otpverify: { screen: OTPverification },
userVerified: {
screen: TabNavigator({
List: { screen: List },
Settings: { screen: Settings }
}),
}
},
{
headerMode: 'none',
navigationOptions: {
headerVisible: false,
}
}
);
ヘッダーを非表示にするページの下のコードを使用するだけです。
export default class Login extends Component {
static navigationOptions = {
header: null
}
}
Stack Navigator を参照してください。
これをクラス/コンポーネントのコードスニペットに追加するだけで、ヘッダーが非表示になります。
static navigationOptions = { header: null }
あなたがこのようにするよりも特定のスクリーンを隠したいならば:
// create a component
export default class Login extends Component<{}> {
static navigationOptions = { header: null };
}
画面がクラスコンポーネントの場合
static navigationOptions = ({ navigation }) => {
return {
header: () => null
}
}
最初の方法(機能)として、ターゲットの画面にこれをコーディングします。
ComponentDidMountでヘッダーを切り替える方法を探している人がいる場合は、次のように書きます。
this.props.navigation.setParams({
hideHeader: true,
});
いつ
static navigationOptions = ({ navigation }) => {
const {params = {}} = navigation.state;
if (params.hideHeader) {
return {
header: null,
}
}
return {
headerLeft: <Text>Hi</Text>,
headerRight: <Text>Hi</Text>,
headerTitle: <Text>Hi</Text>
};
};
そしてどこかでイベントが仕事を終えた時:
this.props.navigation.setParams({
hideHeader: false,
});
つかいます
static navigationOptions = { header: null }
クラス/コンポーネント内
class Login extends Component {
static navigationOptions = {
header: null
}
}
header : null
の代わりにheader : { visible : true }
を使用しています。私はreact-native cliを使用しています。これは例です:
static navigationOptions = {
header : null
};
これは私のために働いた:
const Routes = createStackNavigator({
Intro: {
screen: Intro,
navigationOptions: {
header: null,
}
}
},
{
initialRouteName: 'Intro',
}
);
あなたのターゲット画面では、これをコーディングする必要があります。
static navigationOptions = ({ navigation }) => {
return {
header: null
}
}
const CallStack = createStackNavigator({
Calls: Calls,
CallsScreen:CallsScreen,
}, {headerMode: 'none'});
CallStack.navigationOptions = {
tabBarLabel: 'Calls',
tabBarIcon: ({ focused }) => (
<TabBarIcon
focused={focused}
name={Platform.OS === 'ios' ? 'ios-options' : 'md-options'}
/>
),
header: null,
headerVisible: false,
};