react-native - 如果我将该道具应用于仅输入文本,为什么占位符文本也会变为粗体?(安卓设备)
问题描述
我也管理了新的文本输入,也尝试了不同的逻辑来维护文本输入的样式,但不适用于 Android。我想知道我应该如何为输入文本和占位符文本应用两种不同的样式。我想为 plaholdet 文本和输入文本应用不同的样式。
React Native 自定义 TextInput 占位符
我也试过这个,也试过 react-native-elements 组件......
这是我的代码
export default class TextInput2 extends Component {
constructor(props) {
super(props);
this.state = { placeholder: props.value.length == 0 }
this.handleChange = this.handleChange.bind(this);
}
componentDidMount(){
// console.log('hello')
// console.log(this.state.placeholder)
// console.log(this.props.value)
// console.log(this.props.value.length == 0)
this.setState({
placeholder: this.props.value.length == 0
})
}
componentDidUpdate(){
// console.log('Update',this.props.value.length == 0)
console.log(this.props.value)
}
handleChange(ev) {
this.setState({ placeholder: ev.nativeEvent.text.length == 0 });
this.props.onChange && this.props.onChange(ev);
}
handleTextChange(text){
this.setState({ placeholder: text.length == 0 });
this.props.onChangeText && this.props.onChangeText(text);
}
render() {
const { placeholderStyle, style, onChange, onChangeText,value, ...rest } = this.props;
let textstyle='';
if(this.props.value.length == 0){
console.log('in if',this.props.value.length == 0)
textstyle = placeholderStyle
}else{
console.log('in else',this.props.value.length == 0 )
textstyle=style
}
return <TextInput
{...rest}
value={value}
onChange={this.handleChange}
onChangeText={(text)=>this.handleTextChange(text)}
style={textstyle}
/>
}
}
解决方案
推荐阅读
- r - 在R中使用条件删除txt文件中的几行
- regex - 从正则表达式中排除一些单词
- javascript - 按钮中的自动启动倒数计时器
- ios - 切换到另一个 VC Swift 后,iOS 动画无法正常工作
- express-graphql - 无法读取 Object.renderGraphiQL 中未定义的属性“startsWith”
- php - Apache Web 服务器、php 和 mariadb 查询
- javascript - 错误的页面启动方式和未定义的变量
- angular - 关于验证错误的 Angular 5 更改选项卡
- html - 内部显示不正确 - 在 2 行而不是 1 行中显示内容
- css - 选择下拉菜单值是 IE 中的重叠下拉菜单,在 firefox/chrome 中工作正常