有没有办法在React Native中将fontStyle: 'italic'
only设置为placeholder
of TextInput?
看起来你只能设置一个占位符和placeholderTextColor的here at the documentation。
发布于 2016-09-29 15:33:34
对Daniel的答案进行改进,以获得更通用的解决方案
class TextInput2 extends Component {
constructor(props) {
super(props);
this.state = { placeholder: props.value.length == 0 }
this.handleChange = this.handleChange.bind(this);
}
handleChange(ev) {
this.setState({ placeholder: ev.nativeEvent.text.length == 0 });
this.props.onChange && this.props.onChange(ev);
}
render() {
const { placeholderStyle, style, onChange, ...rest } = this.props;
return <TextInput
{...rest}
onChange={this.handleChange}
style={this.state.placeholder ? [style, placeholderStyle] : style}
/>
}
}
用法:
<TextInput2
value={this.state.myText}
style={{ fontFamily: "MyFont" }}
placeholderStyle={{ fontFamily: "AnotherFont", borderColor: 'red' }}
/>
发布于 2018-05-31 08:09:24
您可以使用placeholderTextColor
属性来设置占位符颜色。
<TextInput placeholderTextColor={'red'} />
发布于 2016-04-28 18:16:14
您可以自己构建此功能。输入为空时会显示占位符,因此您可以检查自己的状态并相应地更改fontStyle:
<TextInput
onChangeText={txt => this.setState({enteredText: txt})}
fontStyle={this.state.enteredText.length == 0 ? 'italic' : 'normal'}
style={style.input} />
由于某些原因,这似乎不适用于fontFamily = System。因此,您必须显式指定fontFamily。
https://stackoverflow.com/questions/35581548
复制相似问题