如何控制React Native's <TextInput>的defaultValue
How to control defaultValue of React Native's <TextInput>?
我有一个<TextInput/>
与defaultValue
设置和一个按钮,它将触发并传递<TextInput>
的defaultValue
在其他地方。
但是我如何将<TextInput/>
的defaultValue
传递给<TouchableHighlight/>
的onPress
方法?
这就是我想要达到的目标:
changeName(text) {
this.setState({nameNow: text}) //How can I immediately set the defaultValue='PassMeIn' to nameNow? Because this method would never be called unless text is changed within TextInput
}
sendOff() {
//Would like to access the defaultValue='PassMeIn' here whenever sendOff() is called. How can I?
}
render() {
return (
<View>
<TextInput
defaultValue='PassMeIn'
onChange={this.changeName}
value={this.state.nameNow}
/>
<TouchableHighlight onPress={this.sendOff}/>
<Text>Button</Text>
</TouchableHighlight>
</View>
)
}
首先,render
方法不能返回多个节点。我认为<TextInput/>
应该由<TouchableHighlight/>
组件包装,如:
render() {
return (
<TouchableHighlight onPress={this.sendOff}>
<TextInput
defaultValue='PassMeIn'
onChange={this.changeName}
value={this.state.nameNow}
/>
</TouchableHighlight>
)
}
这将使得可以通过<TouchableHightlight>
到<TextInput
传递道具作为defaultValue
使用,并且您可以在<TouchableHighlight>
组件中访问它。
您可以将defaultValue存储在一个新的状态中,然后您可以在两个位置访问它
constructor(props) {
super(props);
this.state = {
//...other state
defaultValue: "PassMeIn"
};
//...other code
sendOff() {
//...do things with this.state.defaultValue
}
render() {
return (
<TextInput
defaultValue={this.state.defaultValue}
onChange={this.changeName}
value={this.state.nameNow}
/>
<TouchableHighlight onPress={this.sendOff}/>
)
}
相关文章:
- 如何获得React Native TextInput以在提交后保持焦点
- React Native:当将TextInput放入View中时,它将消失
- 在React Native中触摸TextInput时打开Keyboard和/或DatePickerIOS
- TextInput onChange事件接收的是文本对象而不是字符串
- 调试反应本机TextInput行为
- 屏蔽反应本机TextInput
- React Native TextInput抓取高亮显示的文本,并在我点击时保持高亮显示
- react native中TextInput的焦点样式
- 如何使用react native动态赋值给TextInput
- 基于textInput的自定义淘汰绑定
- TextInput发送文本在新的td
- 从chrome 54开始,如何从扩展调度可信的textInput事件
- 我如何保持/模糊TextInput键盘上的React Native
- React Native -关注下一个TextInput字段
- 作为Chrome 53,如何添加文本,如果一个可信的textInput事件被派遣
- 如何在QML中使用forwardTo在TextInput上显示光标
- $myform.textinput.$isvalid 在不应该为真时为真
- 使用formdata通过jquery ajax将带有fileinput,textinput和多个复选框的表单发布到php
- TextInput一旦填满了特定的条件,就会自动跳转到另一个字段
- Textinput或Textarea值改变的触发事件