我的代码看起来像是
<iOSOnlyComponent>
.....
.....
.....
</iOSOnlyComponent>
只想在iOS上使用iOSOnlyComponent
。我试过这个
{isIOS && <iOSOnlyComponent>}
.....
.....
.....
{isIOS && </iOSOnlyComponent>}
但是我遇到了语法错误
答案 0 :(得分:2)
你应该做(像未经测试的代码)
render() {
const helloMessageIOS = <iOSOnlyComponent> Hello, JSX! </iOSOnlyComponent>;
return (
<ScrollView >
{isIOS && helloMessageIOS }
</ScrollView >
);
}
如果iOSOnlyComponent组件很大,您只需将其添加到函数中并从那里返回。
可能如下(未经测试的代码)
render() {
return (
<View >
{isIOS && {this.displayComponent()} }
</View >
);
}
displayComponent() {
return <iOSOnlyComponent> Hello, JSX! </iOSOnlyComponent>;
}
答案 1 :(得分:0)
使用条件渲染。
renderIosComp(){
if(isIOS){ //use your variable here ideally props or state should be used
return(<iOSOnlyComponent>
.........
..........
<iOSOnlyComponent />);
}
else{
return(<div></div>);
}
}
在你的渲染方法中调用它
render(){
return(<div>
.......
......
{this.renderIosComp()}
</div>);
}
答案 2 :(得分:0)
如果条件渲染使您的组件过于复杂,您只需将其分为2个文件,将其命名为myComponent.android.js
和myComponent.ios.js
,然后只需import myComponent from './myComponent'
React将自动选择正确的文件。