是否可以在react-native中的TextInput中将textalign设置为left但将占位符设置为right

时间:2019-01-08 10:13:25

标签: reactjs react-native

是否可以在 react-native TextInput 中将 textalign 设置为左侧,但将 placeholder 设置为右侧

我这样使用某事,但不起作用:

 <TextInput style={this.state.userName!='' ? styles.defaultText : [styles.defaultText,{textAlign:'left'}]} placeholder='...' autoCapitalize='none' 
            onChangeText={(txt) => this.setState({txtUserName : txt}) }
            value={this.state.txtUserName}></TextInput>

2 个答案:

答案 0 :(得分:0)

下面的代码给出了您想要的。我认为,如果您查看状态管理,您的问题将得到解决,或者您可以使用这种状态; <​​/ p>

const placeHolder = "...";

class Second extends React.Component {
constructor(props) {
    super(props);
    this.state = {txtUserName: placeHolder}
}

render() {
    return 
        <TextInput
            style={this.state.txtUserName === placeHolder ? {color:"#000000", textAlign:"right"}:{color:"#a10c93", textAlign:"left"}}
            placeholder={placeHolder}
            autoCapitalize='none'
            onChangeText={(txt) => this.setState({txtUserName: txt})}
            value={this.state.txtUserName}>
        </TextInput>
}
}

答案 1 :(得分:0)

只需检查txtUserName是否为空。如果为空,则设置占位符文本样式,否则设置输入文本样式。

请检查以下代码。

<TextInput style={this.state.txtUserName!=='' ? 
            [styles.defaultText,{textAlign:'right'}] :  
            [styles.defaultText,{textAlign:'left'}]} 
            placeholder='...' 
            autoCapitalize='none' 
            onChangeText={(txt) => this.setState({txtUserName : txt}) }
            value={this.state.txtUserName}>
</TextInput>