【问题标题】:Functions are not valide as a React child React Native函数作为 React 子 React Native 无效
【发布时间】:2020-07-01 07:30:44
【问题描述】:

我有下一个错误“Functions are not valid as a React child React Native”,当我按下标题中的图像时,我试图显示一个抽屉(使用 react-navigation-stack 库创建),然后我使用react-navigation-drawer。到目前为止一切正常,当我尝试将变量导航传递给我的函数以在createStackNavigator 中使用时,问题就开始了,我不知道传递这个变量的正确方法是什么。

I want some like this image

    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 的新手。

【问题讨论】:

    标签: react-native react-navigation react-navigation-stack react-navigation-drawer


    【解决方案1】:

    用这个替换你的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
        }
    })
    

    【讨论】:

    • 好吧,这修复了错误,但现在我有变量导航的问题,没有声明,然后我有错误“找不到变量导航”
    • @EdgarCamberos 您也可以从defaultNavigationOptions 访问导航。我更新了答案。请检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 2019-08-18
    • 2022-09-27
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    相关资源
    最近更新 更多