从 TextIput 获取值
Get the value from TextIput
我希望能够在用户按下 enter/return 后检索文本的值。
我尝试了以下...
class HomePage extends Component {
constructor(props) {
super(props);
this.state = {
text:''
}
}
callTextSubmit = (val) => {
console.log('callTextSubmit ', val);
};
render() {
return (
<View>
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(text) => this.setState({ text })}
onSubmitEditing={(text) => this.callTextSubmit(text)}
value={this.state.text}
/>
</View>
)
}
}
这 returns 以下...来自控制台日志。
Proxy {dispatchConfig: {…}, _targetInst: FiberNode, isDefaultPrevented: ƒ, isPropagationStopped: ƒ, _dispatchListeners: ƒ, …}
>[[Handler]]:Object
>[[Target]]:Class
>[[IsRevoked]]:false
我想从文本输入中访问值,有解决方法吗?谢谢
onSubmitEditing
处理程序的参数是事件,而不是当前输入。
由于每次更改 TextInput
时都设置了状态变量 text
,因此您可以只在您的状态中使用 text
变量。
callTextSubmit = () => {
console.log('callTextSubmit ', this.state.text);
};
由于您使用此行将 TextInput 的值添加到状态
onChangeText={(text) => this.setState({ text })}
合理的方法是从添加到视图的按钮 (TouchableOpacity/TouchableHighlight) 上的 onPress 函数的状态中获取值,如下所示:
<TouchableOpacity onPress={()=>console.log(this.state.text)}>
<Text>
Enter
</Text>
</TouchableOpacity>
这是您的组件的代码
class HomePage extends Component {
constructor(props) {
super(props);
this.state = {
text:''
}
}
callTextSubmit = () => {
console.log(console.log(this.state.text));
};
render() {
return (
<View>
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(text) => this.setState({ text })}
value={this.state.text}
/>
<TouchableOpacity onPress={()=>console.log(this.state.text)}>
<Text>
Enter
</Text>
</TouchableOpacity>
</View>
)
}
我希望能够在用户按下 enter/return 后检索文本的值。
我尝试了以下...
class HomePage extends Component {
constructor(props) {
super(props);
this.state = {
text:''
}
}
callTextSubmit = (val) => {
console.log('callTextSubmit ', val);
};
render() {
return (
<View>
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(text) => this.setState({ text })}
onSubmitEditing={(text) => this.callTextSubmit(text)}
value={this.state.text}
/>
</View>
)
}
}
这 returns 以下...来自控制台日志。
Proxy {dispatchConfig: {…}, _targetInst: FiberNode, isDefaultPrevented: ƒ, isPropagationStopped: ƒ, _dispatchListeners: ƒ, …}
>[[Handler]]:Object
>[[Target]]:Class
>[[IsRevoked]]:false
我想从文本输入中访问值,有解决方法吗?谢谢
onSubmitEditing
处理程序的参数是事件,而不是当前输入。
由于每次更改 TextInput
时都设置了状态变量 text
,因此您可以只在您的状态中使用 text
变量。
callTextSubmit = () => {
console.log('callTextSubmit ', this.state.text);
};
由于您使用此行将 TextInput 的值添加到状态
onChangeText={(text) => this.setState({ text })}
合理的方法是从添加到视图的按钮 (TouchableOpacity/TouchableHighlight) 上的 onPress 函数的状态中获取值,如下所示:
<TouchableOpacity onPress={()=>console.log(this.state.text)}>
<Text>
Enter
</Text>
</TouchableOpacity>
这是您的组件的代码
class HomePage extends Component {
constructor(props) {
super(props);
this.state = {
text:''
}
}
callTextSubmit = () => {
console.log(console.log(this.state.text));
};
render() {
return (
<View>
<TextInput
style={{height: 40, borderColor: 'gray', borderWidth: 1}}
onChangeText={(text) => this.setState({ text })}
value={this.state.text}
/>
<TouchableOpacity onPress={()=>console.log(this.state.text)}>
<Text>
Enter
</Text>
</TouchableOpacity>
</View>
)
}