我正在尝试为Backhandler实施HOC。我有3个组件都包装在createBottomTabNavigator中,家用组件就是其中之一。但是在执行反向处理之前,HOC会显示此错误。
组件主页-
import React, { Component } from 'react';
import {Text,View} from 'react-native';
import updateComponent from './HOC/updateComponent';
class home extends Component {
constructor(props) {
super(props);
}
render() {
return (
<View><Text> HOC</Text></View>
);
}
}
export default updateComponent(home);
HOC updateComponent
import React, { Component } from 'react';
const updateComponent = WrappedComponent => {
class NewComponent extends Component {
constructor(props) {
super(props);
}
render() {
return <WrappedComponent />;
}
}
return NewComponent;
};
export default updateComponent;
答案 0 :(得分:0)
您的home
组件应从React docs大写:
当元素类型以小写字母开头时,它指的是 内置组件(例如或),并导致字符串“ div” 或“ span”传递给React.createElement。以a开头的类型 大写字母,例如编译为React.createElement(Foo)和 对应于在JavaScript文件中定义或导入的组件。
我们建议使用大写字母命名组件。如果你有一个 以小写字母开头的组件,请将其分配给 在JSX中使用大写变量之前。
另一件事(不确定会导致错误,但稍后会出现错误)是,您没有将道具传递给NewComponent
,这意味着每次将{ 1}},您将失去所有道具。
解决方案:
updateComponent
-> home
。Home
-> return <WrappedComponent />
。