本机反应 - 动态更新样式表值
react native - update stylesheet value dynamically
我想更新样式表 属性 "top" 值。当前为“25”,我想将值更改为“0”或其他任何值。实际上,我想在用户单击 "TextInput" 后存档,"Text" 将移动 "TextInput".
的顶部
import React, {Component} from 'react';
import {View, Text, TextInput, StyleSheet } from 'react-native';
export default class InputBoxComponent extends Component{
constructor(props){
super(props);
this.state = {
'labelPosition':25
}
}
onFoucusHandler = () => {
this.state.labelPosition = 0
}
onBlurHandler = () => {
this.state.labelPosition = 25
}
render(){
return(
<View style={styles.container}>
<Text style={{
'color':'#7b858e',
'fontSize':12,
'top':this.state.labelPosition
}}>{this.props.label}</Text>
<TextInput style={styles.input} onFocus={this.onFoucusHandler} onBlur={this.onBlurHandler}/>
</View>
)
}
}
InputBoxComponent.defaultProps = {
'label':'Label',
'labelPosition': 25
}
const styles = StyleSheet.create({
container:{
paddingBottom: 10,
paddingTop: 10
},
input:{
borderBottomColor: '#ccc',
borderBottomWidth: 1,
paddingTop: 5,
paddingBottom: 5,
fontSize: 16
}
})
您必须为此尝试 keyboardavoidingview
。
参考 link:
https://facebook.github.io/react-native/docs/keyboardavoidingview
你可以替换
this.state.labelPosition = 0
和
this.setState({labelPosition:0})
也可以看看像 Native Base 这样的库
https://docs.nativebase.io/Components.html#floating-label-headref
我认为浮动标签可以实现您想要实现的目标。
我想更新样式表 属性 "top" 值。当前为“25”,我想将值更改为“0”或其他任何值。实际上,我想在用户单击 "TextInput" 后存档,"Text" 将移动 "TextInput".
的顶部import React, {Component} from 'react';
import {View, Text, TextInput, StyleSheet } from 'react-native';
export default class InputBoxComponent extends Component{
constructor(props){
super(props);
this.state = {
'labelPosition':25
}
}
onFoucusHandler = () => {
this.state.labelPosition = 0
}
onBlurHandler = () => {
this.state.labelPosition = 25
}
render(){
return(
<View style={styles.container}>
<Text style={{
'color':'#7b858e',
'fontSize':12,
'top':this.state.labelPosition
}}>{this.props.label}</Text>
<TextInput style={styles.input} onFocus={this.onFoucusHandler} onBlur={this.onBlurHandler}/>
</View>
)
}
}
InputBoxComponent.defaultProps = {
'label':'Label',
'labelPosition': 25
}
const styles = StyleSheet.create({
container:{
paddingBottom: 10,
paddingTop: 10
},
input:{
borderBottomColor: '#ccc',
borderBottomWidth: 1,
paddingTop: 5,
paddingBottom: 5,
fontSize: 16
}
})
您必须为此尝试 keyboardavoidingview
。
参考 link: https://facebook.github.io/react-native/docs/keyboardavoidingview
你可以替换
this.state.labelPosition = 0
和
this.setState({labelPosition:0})
也可以看看像 Native Base 这样的库 https://docs.nativebase.io/Components.html#floating-label-headref 我认为浮动标签可以实现您想要实现的目标。