Reactjs React native-有条件地设置高度

Reactjs React native-有条件地设置高度,reactjs,react-native,Reactjs,React Native,因此,对于ios,您需要设置高度。然而,对于android,您不需要这样做。所以我想知道,只有当操作系统与ios匹配时,我如何设置高度。我了解平台,但当我尝试应用一些逻辑时,我会出错。这就是我所尝试的: <TextInput onChangeText={(input) => this.setState({user: input})} maxLength={10} placeholder="Enter a name" {(Plat

因此,对于ios,您需要设置高度。然而,对于android,您不需要这样做。所以我想知道,只有当操作系统与ios匹配时,我如何设置高度。我了解平台,但当我尝试应用一些逻辑时,我会出错。这就是我所尝试的:

    <TextInput
      onChangeText={(input) => this.setState({user: input})}
      maxLength={10}
      placeholder="Enter a name"
      {(Platform.OS === 'ios') ? "height={20}" : ""}
      style={{ width: 150, textAlign: "center"}}
    />
this.setState({user:input})
maxLength={10}
占位符=“输入名称”
{(Platform.OS==='ios')?“height={20}”:“}”
样式={{宽度:150,文本对齐:“中心”}
/>

事实上,我认为最好的办法是:

const style = {
    width: 150,
    textAlign: "center",
    ...Platform.select({ios: {height: 20}})
}
<TextInput
   onChangeText={(input) => this.setState({user: input})}
   maxLength={10}
   placeholder="Enter a name"
   style={style} />
const style={
宽度:150,
textAlign:“居中”,
…平台。选择({ios:{height:20})
}
this.setState({user:input})}
maxLength={10}
占位符=“输入名称”
style={style}/>
这样,您就不会复制其余的样式,并且可以避免代码中出现任何难看的情况,因此更具可读性


你可以在

中阅读关于Plaform.select的内容,实际上我认为最好的做法是:

const style = {
    width: 150,
    textAlign: "center",
    ...Platform.select({ios: {height: 20}})
}
<TextInput
   onChangeText={(input) => this.setState({user: input})}
   maxLength={10}
   placeholder="Enter a name"
   style={style} />
const style={
宽度:150,
textAlign:“居中”,
…平台。选择({ios:{height:20})
}
this.setState({user:input})}
maxLength={10}
占位符=“输入名称”
style={style}/>
这样,您就不会复制其余的样式,并且可以避免代码中出现任何难看的情况,因此更具可读性


你可以阅读Plaform.select in

是的,这是我一直在寻找的东西,它不会强迫我复制代码,而是在必要时插入它。谢谢
..
是一个扩展运算符吗?是。。。是一个扩展运算符,因此对于iOS,高度扩展到样式对象,而对于android,当您尝试扩展未定义的对象时,将跳过该运算符。是的,这是我正在寻找的更多内容,不会强迫我复制代码,而是在必要时插入它。谢谢
..
是一个扩展运算符吗?是。。。是一个扩展运算符,因此对于iOS,高度将扩展到样式对象,而对于android,当您尝试扩展未定义的对象时,将跳过该运算符。