Функции не валидны как дочерний React React Native - PullRequest
1 голос
/ 20 марта 2020

У меня следующая ошибка " Функции недопустимы как React child React Native ", я пытаюсь показать ящик, когда нажимаю изображение в своем заголовке (создать с библиотекой react-navigation-stack) тогда я использую react-navigation-drawer. До сих пор все в порядке, проблема начинается, когда я пытаюсь передать переменную навигацию своей функции для использования в createStackNavigator, я не знаю, как правильно передать эту переменную.

Мне нужно что-то вроде этого изображения

    import React from 'react';
    import {TouchableOpacity, Image} from "react-native";
    import {createDrawerNavigator} from "react-navigation-drawer";
    import {createStackNavigator} from 'react-navigation-stack';

    //IMPORT SCENES
    import HomeScreen from "../scenes/Home";
    import UpdateProfileScreen from "../scenes/home/UpdateProfile";

    const HomeStack = ({navigation}) => createStackNavigator(
        {
                Home: HomeScreen,
                UpdateProfile: UpdateProfileScreen,
            },
            {
                initialRouteName: 'Home',
                defaultNavigationOptions: ({
                    headerLeft: () =>
                        <TouchableOpacity style={{alignItems: 'flex-end', margin: 16}}
                                          onPress={() => navigation.openDrawer()}>
                            <Image style={{width: 24, height: 24}} source={require('../images/open-menu.png')}/>
                        </TouchableOpacity>
                })
            }
        )

    export default DrawerNavigator = createDrawerNavigator({
        HomeStack
    })

Как мне это исправить, я новичок в React Native.

1 Ответ

0 голосов
/ 20 марта 2020

Замените ваш HomeStack следующим:

const HomeStack = createStackNavigator({
  Home: {
    screen: HomeScreen
  },
  UpdateProfile: {
    screen: UpdateProfileScreen
  },
},{
  initialRouteName: 'Home',
  defaultNavigationOptions: ({navigation}) => ({ // change here
    headerLeft: () =>
      <TouchableOpacity style={{ alignItems: 'flex-end', margin: 16 }}
        onPress={() => navigation.openDrawer()}>
        <Image style={{ width: 24, height: 24 }} source={require('../images/open-menu.png')} />
      </TouchableOpacity>
  })
})

И

Замените свой DrawerNavigator следующим:

export default DrawerNavigator = createDrawerNavigator({
    HomeStack: {
      screen: HomeStack
    }
})
...