реагировать на навигацию, как перейти от навигации CustomDrawer - PullRequest
0 голосов
/ 13 декабря 2018

Я использую createDrawerNavigator и внутри этого я сделал собственный вид профиля.Когда я нажимаю navigate, я хочу перейти на другой экран.

Но это дает мне ошибку undefined is not an object (evaluating"_this.props.navigation").Другие компоненты one, two, three отлично работают.

Это мой код:

export default class App extends Component {
  render() {

    return (
      <View style={{flex:1, marginTop:30}}>
        <AppContainer/>
      </View>
    );
  }
}

    const CustomDrawerContentComponent = (props)=> {
      return(
      <SafeAreaView style={{flex:1}}>
        <View style={{ height:100, backgroundColor: '#9FA8DA' }}>
          <Image
                style={{marginLeft:20,height:100,width:100,borderRadius:50}}
                source={require('./assets/puppy.jpg')}/>
        </View>

        <View style={{flexDirection:'row', margin:20, alignItems:'center'}}>
    //////here is where I get an error
        <TouchableOpacity
            style={{marginTop:0}}
            onPress={()=> {this.props.navigation.navigate('profile')}}>
          <Text style={{fontSize:18, fontWeight:'bold'}}>navigate</Text>
          <Image
                style={{height:12,width:12}}
                source={require('./assets/drawable-hdpi/ic_arrow_depth.png')}/>
        </TouchableOpacity>
        </View>
        <ScrollView>
          <DrawerItems {...props}/>
        </ScrollView>
      </SafeAreaView>
      )
    }

const AppDrawerNavigator = createDrawerNavigator({
    one: AppStackNavigator,
    two: BoardScreen,
    three: NotificationScreen,
  },{
    contentComponent:CustomDrawerContentComponent,
  })

const AppStackNavigator = createStackNavigator({
  profile: {
  screen: profileScreen,
  navigationOptions: {
      header: null
    },
  },
})

const StartSwitchNavigator = createSwitchNavigator(
    {
      App: AppDrawerNavigator,
    },
    {
      initialRouteName: 'App',
    }
  )

enter image description here

1 Ответ

0 голосов
/ 13 декабря 2018

Ваш CustomDrawerContentComponent компонент является функциональным компонентом.Используйте props.navigation напрямую вместо this.props

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...