使用TouchableOpacity清除Textinput而不关闭键盘?
问题描述:
我想建立一个超级简单的聊天。 要做到这一点,有一个TextInput和一个TouchableOpacity发送消息,并清除Textinput。使用TouchableOpacity清除Textinput而不关闭键盘?
问题:当我发送消息时,Textinput被清除,但是当再次开始写入时,旧文本再次被复制到Textinput(+新字符)中。 但是,如果键盘被发送后清除一切工作 完全罚款。
有没有什么办法用TouchableOpacity完全清除TextInput?
下面是我自己的代码和一些尝试,但没有一个人工作。 由于提前,
Maffinius
<View style={{flexDirection: 'row'}}>
<TextInput
placeholder="Schreibe eine Nachricht"
onChangeText={(text) => this.setState({newMsg : text})}
style={{width: 300}}
ref={'ref1'}
/>
<TouchableOpacity
onPress={this.sendMessage}
>
<Text> --> </Text>
</TouchableOpacity>
</View>
sendMessage =() => {
this.state.MsgData.push({msg: this.state.newMsg, id: this.props.global.userId, timestamp: 8888});
this.refs['ref1'].clear();
this.setState({newMsg: ""});
//this.refs['ref1'].setNativeProps({text: ''})
//Keyboard.dismiss();
}
- 列表项
答
使用defaultValue
道具设置状态的值(https://facebook.github.io/react-native/docs/textinput.html#defaultvalue)
<TextInput
placeholder="Schreibe eine Nachricht"
onChangeText={(text) => this.setState({newMsg : text})}
style={{width: 300}}
ref={(input) => this.ref1 = input}
defaultValue={this.state.newMsg}
/>
全面实施参见下面的例子:https://snack.expo.io/SkuH8hKPb
应该不是只是价值? – EnriqueDev
首先是快速响应的thx: 代码示例几乎可以正常工作,但是您必须在消息文本后面添加一个空格(否则当我再次开始写入时,最后一个字或字符仍然在textinput中复制)。有没有什么办法解决这一问题? (手动添加一个空白空间并不能正常工作)。 – Maffinius