首页 > 解决方案 > 抽屉物品出现问题 - React Native

问题描述

我正在使用带有 React Navigation 4.0.5 的 React Native 并收到此错误:

不变违规:不变违规:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。

检查contentComponent.

这是我的代码:

import React from 'react';
import { createDrawerNavigator, DrawerItems } from 'react-navigation-drawer';
import { useDispatch } from 'react-redux';
import { Platform, SafeAreaView, Button, View } from 'react-native';
import * as authActions from '../store/actions/auth';


const MenuNavigator = createDrawerNavigator(
  {
    Mapa: MapaNavigator,
    Pedidos: PedidosNavigator,
    Usuario: UsuarioNavigator
  },
  {
    contentOptions: {
      activeTintColor: Colors.primary
    },
    contentComponent: props => {
      const dispatch = useDispatch();
      return (
        <View style={{ flex: 1, paddingTop: 20 }}>
          <SafeAreaView forceInset={{ top: 'always', horizontal: 'never' }}>
            <DrawerItems {...props} />
            <Button
              title="Logout"
              color={Colors.primary}
              onPress={() => {
                dispatch(authActions.logout());
              }}
            />
          </SafeAreaView>
        </View>
      );
    }
  }
);

如果我评论<DrawerItems {...props} />所有代码仅显示注销按钮...添加<DrawerItems {...props} />上述错误出现...

标签: reactjsreact-native

解决方案


我刚刚在本指南中找到了解决方案

import { createDrawerNavigator, DrawerNavigatorItems } from 'react-navigation-drawer';

替换这个

<DrawerItems {...props} />

这样

<DrawerNavigatorItems {...props} />

推荐阅读