我有一个列表应用程序,用户可以在其中添加多个类别的项目,当他们想要添加新记录时,有 3 个具有此特定功能的相关屏幕。所有这些屏幕都有<Header/>
组件,所以我认为 HoC 在这里会很好,这样我就可以在 3 个屏幕上重复使用它。但是,我无法完成它。
这是我到目前为止所尝试的:
这是我的 HoC 课
import React, { Component } from 'react';
import { View, StyleSheet, Text, StatusBar } from 'react-native';
import Header from '../components/Header';
const NewAd = (WrappedComponent) => {
class NewAdHoc extends Component {
handleBackPress = () => {
this.props.navigation.navigate('Home');
StatusBar.setBarStyle('dark-content', true);
}
render() {
const {contentText, children} = this.props
return (
<View style={styles.container}>
<Header
headerText={'Yeni ilan ekle'}
onPress={this.handleBackPress}
/>
<View style={styles.contentContainer}>
<Text style={styles.contentHeader}>{contentText}</Text>
<WrappedComponent/>
</View>
</View>
);
}
}
return NewAdHoc;
}
这是我的屏幕:
class NewAdScreen extends Component {
render() {
const Content = () => {
return (
<View style={styles.flatListContainer}>
<ListViewItem />
</View>
);
}
return (
NewAdHoc(Content)
)
}
}
之后我收到错误
TypeError: (0 , _NewAdHoc.NewAdHoc) is not a function(…)
而且我不知道如何修复它,因为这是我第一次在 react-native 应用程序上使用 hocs。我已经查看了为什么会弹出此错误,他们建议以这种方式导入组件:
import {NewAdHoc} from '../hocs/NewAdHoc';
但即使这样也没有解决它。
任何帮助将不胜感激,谢谢。