我的应用程序运行在3个不同的国家/地区(接近电子商务)。每个国家/地区都有一个开发团队,可以更改某些特定component
以满足需求。我正在考虑通过上下文传递组件,但是如何选择Form-US
或Form-UK
? (认为动态导入它在React中是不可能的)
我的App.js
import React from 'react'
import UserInput from './common/UserInput'
class App extends React.Component {
getChildContext () {
return {
input: UserInput
}
}
render () {
return (
<div>
{this.props.children}
</div>
)
}
}
App.childContextTypes = {
input: React.PropTypes.object
}
export default App
我会在需要时选择该组件:
render () {
const Input = this.context.input
return (
<Input placeholder='Input Test'/>
)
}
那工作得很好,但这是一个很好的做法?它有更好的方法,如何添加具有特定名称的组件到该结构?
答案 0 :(得分:1)
正如我们在评论中所讨论的,有更聪明的方法可以做到这一点。但如果我今天需要一个解决方案,那就是我要做的事情:
输入&#39; 的index.js
<a href="file:///\\server\shared_data\Test\Test_Report.pdf">Test Report</a>
然后父母可以从index.js导入import ComponentUS from './Component-US';
import ComponentBR from './Component-BR';
import ComponentAG from './Component-AG';
import config from '../config.json';
let thingToExport;
if (config.country === 'US') {
thingToExport = ComponentUS;
} else if (config.country === 'BR') {
thingToExport = ComponentBR;
} else {
thingToExport = ComponentAG;
}
export default thingToExport;
。