admin管理员组

文章数量:1295864

I am trying to add a pany logo to header of Drawer Navigator, but it displays only screen's title. Here is my code:

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View, ScrollView, Dimensions, Image} from 'react-native';
import { createDrawerNavigator, createAppContainer, DrawerItems, SafeAreaView } from 'react-navigation';
import HomeScreen from './screens/HomeScreen';
import SettingsScreen from './screens/SettingsScreen';

class App extends Component {
  render() {
    return (
      <AppNavigator />
    );
  }
}

const AppNavigator = createDrawerNavigator({
  Home: {screen: HomeScreen},
  Settings: {screen: SettingsScreen},
},
{
  CustomDrawerContentComponent: props => (
    <SafeAreaView style={styles.container}>
        <View style={{height: 150, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center'}}>
          <Image source={require('./assets/typeme.png')} style={{height: 120, width:200}}></Image>
        </View>
      <ScrollView>
        <DrawerItems {...props} />
      </ScrollView>
    </SafeAreaView>
  )
}
);

const DrawerContent = (props) => (
  <View>
    <View
      style={{
        backgroundColor: '#f50057',
        height: 140,
        alignItems: 'center',
        justifyContent: 'center',
      }}
    >
      <Text style={{ color: 'white', fontSize: 30 }}>
        Header
      </Text>
    </View>
    <DrawerItems {...props} />
  </View>
)

const styles = StyleSheet.create({
  container: {
    flex: 1,
  },
});

export default createAppContainer(AppNavigator);

"dependencies": {
        "native-base": "^2.10.0",
        "react": "16.6.3",
        "react-native": "0.55.2",
        "react-native-gesture-handler": "^1.0.12",
        "react-navigation": "^3.0.9"
      }

I am trying to add a pany logo to header of Drawer Navigator, but it displays only screen's title. Here is my code:

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View, ScrollView, Dimensions, Image} from 'react-native';
import { createDrawerNavigator, createAppContainer, DrawerItems, SafeAreaView } from 'react-navigation';
import HomeScreen from './screens/HomeScreen';
import SettingsScreen from './screens/SettingsScreen';

class App extends Component {
  render() {
    return (
      <AppNavigator />
    );
  }
}

const AppNavigator = createDrawerNavigator({
  Home: {screen: HomeScreen},
  Settings: {screen: SettingsScreen},
},
{
  CustomDrawerContentComponent: props => (
    <SafeAreaView style={styles.container}>
        <View style={{height: 150, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center'}}>
          <Image source={require('./assets/typeme.png')} style={{height: 120, width:200}}></Image>
        </View>
      <ScrollView>
        <DrawerItems {...props} />
      </ScrollView>
    </SafeAreaView>
  )
}
);

const DrawerContent = (props) => (
  <View>
    <View
      style={{
        backgroundColor: '#f50057',
        height: 140,
        alignItems: 'center',
        justifyContent: 'center',
      }}
    >
      <Text style={{ color: 'white', fontSize: 30 }}>
        Header
      </Text>
    </View>
    <DrawerItems {...props} />
  </View>
)

const styles = StyleSheet.create({
  container: {
    flex: 1,
  },
});

export default createAppContainer(AppNavigator);

"dependencies": {
        "native-base": "^2.10.0",
        "react": "16.6.3",
        "react-native": "0.55.2",
        "react-native-gesture-handler": "^1.0.12",
        "react-navigation": "^3.0.9"
      }
Share Improve this question edited Feb 4, 2020 at 12:11 hakki 6,5277 gold badges65 silver badges109 bronze badges asked Dec 25, 2018 at 14:30 Bositkhon SultonovBositkhon Sultonov 7052 gold badges10 silver badges26 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 8

Just replace const AppNavigator to

const AppNavigator = createDrawerNavigator({
  Home: {screen: HomeScreen},
  Settings: {screen: SettingsScreen},
}, {
   contentComponent: (props) => (
    <SafeAreaView style={styles.container}>
        <View style={{height: 100,alignItems: 'center', justifyContent: 'center'}}>

          <Text style={{fontSize: 32}}>LOGO</Text>
        </View>
      <ScrollView>
        <DrawerItems {...props} />
      </ScrollView>
    </SafeAreaView>
   )
});

本文标签: javascriptHow to add an image to Header of Navigation Drawer in React NativeStack Overflow