如何有条件地添加反应中的组分

时间:2018-03-07 10:30:32

标签: reactjs react-native

我的代码看起来像是

<iOSOnlyComponent>
.....
.....
.....
</iOSOnlyComponent>

只想在iOS上使用iOSOnlyComponent。我试过这个

{isIOS && <iOSOnlyComponent>}
.....
.....
.....
{isIOS && </iOSOnlyComponent>}

但是我遇到了语法错误

3 个答案:

答案 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.jsmyComponent.ios.js,然后只需import myComponent from './myComponent'

React将自动选择正确的文件。