我正在使用react native来实现社区Feed。在Feed中的每个帖子中,我都可以发表评论,如下所示。
然而,问题是在我输入评论并想按下右侧的提交图标后,键盘将先解除,然后我才能点击图标提交文字。
问题: 如何在按下提交图标后立即提交我的文本而不点击两次(一次关闭键盘,第二次提交)
这是我实施的一小段内容: //评论代码部分/框
<View style={styles.commentSectionContainer}>
<View style={[textInputStyle.dark, textInputStyle.compact]}>
<LocalizedTextInput
multiline={false}
autoCorrect={true}
onChangeText={onCommentTextChange}
placeholder="placeholder/writeComment"
style={[textInputStyle.default, {fontSize: 13}]}
underlineColorAndroid="transparent"
value={textComment}
onSubmitEditing={() => {
if (textComment) {
onSubmitComment();
}
}}
returnKeyType="send"
/>
<View style={styles.iconSubmitContainer}>
<IconButton style={styles.commentSubmit} iconName="send" isDisabled={textComment === ''} onPress={onSubmitComment} hitSlop={hitSlop} />
</View>
</View>
</View>
本地化文本输入使用以下textinput
<View style={{flex: 1}}>
<TextInput
multiline={multiline}
style={[defaultStyle, {flex: 1}]}
underlineColorAndroid="transparent"
autoCorrect={true}
{...otherProps}
/>
</View>
这些帖子都包含在scrollView中。
我尝试使用&#34; keyboardShouldPersistTaps&#34;和keyboardDismissMode =&#34;拖放&#34;但它并没有产生预期的体验。用户应该可以通过点击textinput框外的任何地方来解除键盘而不需要滚动。
答案 0 :(得分:1)
如果您的父母是ScrollView
组件,那么传递道具keyboardShouldPersistTaps="always"
应该可以解决问题。请参阅官方文档here。
答案 1 :(得分:0)
由于Ankit建议需要将prop传递给滚动视图,但如果没有给出所需的结果,TextInput有一个blur()方法,您可以使用该TextInput的ref调用该方法。也许这会有所帮助。