Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 高阶组件可以';t访问包装组件';s默认道具_Javascript_Node.js_Reactjs_Web_React Router - Fatal编程技术网

Javascript 高阶组件可以';t访问包装组件';s默认道具

Javascript 高阶组件可以';t访问包装组件';s默认道具,javascript,node.js,reactjs,web,react-router,Javascript,Node.js,Reactjs,Web,React Router,我有一个类似这样的想法: export default function HOC(WrappedComponent) { return class extends Component { static propTypes = { i: PropTypes.number.isRequired }; render() { console.log(this.props); return <WrappedComponent {

我有一个类似这样的想法:

export default function HOC(WrappedComponent) {
  return class extends Component {

    static propTypes = {
      i: PropTypes.number.isRequired
    };

    render() {
console.log(this.props);
      return <WrappedComponent
        {...this.props}/>;
    }
  };
}
导出默认函数HOC(WrappedComponent){
返回类扩展组件{
静态类型={
i:PropTypes.number.isRequired
};
render(){
console.log(this.props);
返回;
}
};
}
我的包装组件如下所示:

WrappedComponent extends Component {
    static defaultProps = {
      i: 0
    };

    render() {
      return <div/>;
    }
  };

export default HOC(WrappedComponent);
WrappedComponent扩展组件{
静态defaultProps={
i:0
};
render(){
返回;
}
};
导出默认HOC(WrappedComponent);

在HOC中的my console.log中,未定义i。但是,由其父级传递到WrappedComponent的道具是在HOC中定义的。如何解决此问题?

这是基于官方文件的示例:

class.com组件{
render(){
返回({this.props.DefaultPropaseTreFeature}

); } }; 函数createHOCWithExtraFeatures(WrappedComponent){ 返回类扩展了React.Component{ 静态defaultProps={ defaultPropAsExtreFeature:“您可以在HOC上看到我” }; render(){ 返回; } }; } const ExtendedHoc=createHOCWithExtraFeatures(HOC); ReactDOM.render( , document.getElementById('root')) );


您是否尝试过这样做:
类HOC扩展WrappedComponent
?@YUzhva我很确定这违反了React约定您使用的是哪一版本的React?请注意,您错过了
WrappedComponent
之前的
。它应该是这样的:
class WrappedComponent扩展组件{}