2017-08-31 130 views
0

这里的尚未使用创建的目标反应解构重命名

从一个应用程序/模块create-react-app

class Hoc extends React.Component { 
    render() { 
    const {component: Component} = this.props 
    return (
     <div> 
     <Component /> 
     </div> 
    ) 
    } 
} 

说明:

使用基本ES6解构与重命名,使反应元素可以被引用为<Component />而不仅仅是变量{component}

我一直在从create-react-app创建的应用程序中成功使用它。这个语法记录在fullstack react书中。这个问题出现在我正在处理的两个反应模块库中,它们不是从create-react-app创建的。

可能的罪魁祸首是一个缺少babel插件。这个工作的应用程序已被弹出,所以我可以看到所有的依赖和插件,但我一直无法找到一个适用于此的应用程序。

嗯,可能是由只有create-react-app附带的反应脚本之一处理。

.babelrc

{ 
    "presets": ["es2015", "stage-2", "react"], 
    "plugins": [ 
    "add-module-exports" 
    ] 
} 

编辑:

这是最低限度的要求一个例子来显示的问题要解决。像this.props.children{React.cloneElement(this.props.component, {...this.props})}这样的侧步解决方案并不是解决特定问题的方法。干杯!

+2

我认为它更多的是将组件作为道具传递的反模式。如果该组件可能发生变化,那么您可以为它应该包含的组件标记prop,然后对每个可能的组件使用常规导入,并使用逻辑来呈现正确的组件。或者,如果你只是将它传给孩子,请使用'this.props.children'。 – Sia

+0

你可以显示你的babel配置吗? –

回答