【问题标题】:React Navigation drawer goes blank after adding contentComponent添加 contentComponent 后,React Navigation 抽屉变为空白
【发布时间】:2018-10-05 10:43:32
【问题描述】:

我正在使用 React Navigation 创建顶部带有标题的自定义 NavigationDrawer 这是我的代码的外观

import React, { Component } from "react";
import { View, Text, StyleSheet } from "react-native";

import AboutScreen from './modules/screens/About/index'
import ContactScreen from './modules/screens/Contact/index'
import HomeScreen from './modules/screens/Home/index'

import { createDrawerNavigator, DrawerItems } from "react-navigation";

import { Image, ScrollView, SafeAreaView, Dimensions } from 'react-native';

class NewDrawer extends Component {
    render() {

        return (
            <AppDrawer />
        );
    }
}
const AppDrawer = createDrawerNavigator({
    HomeScreen: HomeScreen,
    AboutScreen: AboutScreen,
    ContactScreen: ContactScreen,

},
    //Commenting below part makes my code work
    {
        contentComponent: CustomDrawer
    }
)
const CustomDrawer = (props) => (
    <SafeAreaView style={{ flex: 1 }}>
        <View style={{ height: 150, backgroundColor: 'white' }}>
            <Image source={require('./modules/images/header.jpeg')}
                style={{ height: 120, width: 120 }}>
            </Image>
        </View>
        <ScrollView>
            <DrawerItems {...props}>

            </DrawerItems>
        </ScrollView>
    </SafeAreaView>
)

export default NewDrawer;

如果我删除 contentComponent 我会看到我的抽屉物品。

如何获取带有自定义抽屉项目的标题?

我正在使用:-

npm > v6.4.1

节点 > v8.12.0

反应导航> v2.17.0

我关注this tutorial

【问题讨论】:

标签: reactjs react-native react-navigation


【解决方案1】:

您没有向 CustomDrawer 发送道具。试试下面的代码。

contentComponent: props => <CustomDrawer {...props} />

【讨论】:

  • 谢谢,这解决了我的问题,但官方文档或我正在关注的教程视频中没有提到它
  • 欢迎。是的,你是对的,官方文件只说明定制抽屉带道具。但是网上有不同的代码可以用来将道具发送到自定义抽屉。
【解决方案2】:

抽屉.js

<SafeAreaView style={{ flex: 1 }}>
    <View style={{ height: 150, backgroundColor: 'white' }}>
        <Image source={require('./modules/images/header.jpeg')}
            style={{ height: 120, width: 120 }}>
        </Image>
    </View>
    <ScrollView>
        <DrawerItems {...props}>

        </DrawerItems>
    </ScrollView>
</SafeAreaView>

App.js

import CustomDrawer from './Drawer' // Import the file

const AppDrawer = createDrawerNavigator({
    HomeScreen: HomeScreen,
    AboutScreen: AboutScreen,
    ContactScreen: ContactScreen,

},
    {
        contentComponent: <CustomDrawer />
    }
)

这应该可以在安卓设备上测试

【讨论】:

  • 我收到一个错误提示“检查 DrawerSidebar 的渲染方法”
  • 尝试其他方式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
  • 1970-01-01
相关资源
最近更新 更多