【发布时间】:2015-07-30 19:21:54
【问题描述】:
我有一堆 React 组件,我希望我可以将它们用于 Web 和本机。我尝试这样做的方式是这样的:
React.createClass({
getInitialState: function(){
return {isMobile: <some way of tell is native or web>};
},
render: function(){
if(this.state.isMobile){
return <SomeIosComponent/>
}
else{
return <div/>
}
}
});
我希望能够做到这一点,这样我就可以为在网络和本地上看起来相同的东西保持相同的逻辑,这可能吗?能不能像{isMobile: (window ? false : true)}这么简单?或者 window 是否存在于本机中,因此有一种方法可以在本地范围内定义全局变量,出于某种奇怪的原因?
我知道这违背了 React 的“一次学习,随处编写”的理念。
【问题讨论】:
-
也许我遗漏了一些东西,但您的代码不需要更高级别的了解,因为您需要包含“react-native”或“react”但不能同时包含两者
-
我可以在构建时用 gulp 做到这一点。虽然我想我也可以让它需要文件,这些文件只包含名称相同并且只是在构建时添加的组件。
标签: javascript reactjs react-native