防止键盘在 Modal 中关闭 React Native

Prevent keyboard dismiss React Native inside Modal

我在屏幕底部有一个文本输入,按下时会扩展成一个更大的部分,其中包含一些选项。 bottomHeightheight在键盘打开时增加。

当按下额外容器中的这些预定义 tags 之一时,我不想关闭键盘,但我不能让它工作,需要一些帮助。

我已将 textinput 包裹在滚动视图中,尝试按照其他地方的建议使用 keyboardShouldPersistTapskeyboardDismissMode,但它不起作用。

没有要更新的父 ScrollView、ListView 或 FlatList,但是此组件位于 Modal 内,由 SafeAreaView

包裹
<KeyboardAvoidingView style={{ position: 'absolute', bottom: this.props.bottomHeight, left: 0, right: 0, height: this.props.height }}>

// not sure if I need this inner scrollview, ideally it should just be a view
    <ScrollView style={this._computeBottomContainer()} keyboardShouldPersistTaps="always" keyboardDismissMode="on-drag">
        <TextInput
            style={styles.filter}
            placeholder="Type to filter tags"
            onChangeText={(text) => this.props.suggestTags(text)}
            selectionColor="black"
            blurOnSubmit={false}
        />

        { this.props.keyboardOpen &&
            <View style={styles.tagsOuterContainer}>
                <Text style={styles.suggest}>Suggested tags: {this.props.suggestedTags.length}</Text>

                <View style={styles.tagsInnerContainer}>
                    <FlatList
                        data={this.props.suggestedTags}
                        horizontal={true}
                        renderItem={this.renderTag}
                        keyExtractor={( {item}, index) => item + index}
                        keyboardShouldPersistTaps='always'
                        keyboardDismissMode='on-drag'
                    />
                </View>
            </View>
        }
    </ScrollView>
</KeyboardAvoidingView>

在我的应用程序的根部,我有一个 <Swiper /> 元素,它基本上是一个 ScrollView。将 keyboardShouldPersistTaps="always" keyboardDismissMode="on-drag" 作为道具添加到 Swiper 解决了我的问题