Как сохранить значение ввода текста при чрезмерном отклонении?

#react-native

#react-native

Вопрос:

Я использую overly на своем экране. В overly есть textinput и кнопка, а в кнопке есть функция onPress=saveInput() . Я хочу выполнить то же действие, но при чрезмерном отклонении. т.Е. Я хочу вызвать метод saveInput() при чрезмерном отклонении. Есть ли способ, которым я могу это сделать? Вот фрагмент

 <Overlay
    overlayStyle={...}
    isVisible={this.state.isprice} 
    onBackdropPress={...}>
    <ScrollView>
        <>
            <View>
                <TextInput
                    value={this.state.price}
                    keyboardType={"phone-pad"}
                    onChangeText={text => this.setState({ price: text })}
                    onFocus={() => {
                        this.setState({ price: '' })
                    }}
                />
                <View>
                    <Button
                        onPress={() => {
                            this.saveInput()
                        }}
                        title="Add"
                    />
                </View>
            </View>
        </>
    </ScrollView>
</Overlay>
 

Ответ №1:

Вы можете вызвать saveinput inner onbackdropPress или где вы обновляете this.state.isprice

 <Overlay
    overlayStyle={...}
    isVisible={this.state.isprice} 
    onBackdropPress={this.saveInput}>
    <ScrollView>
        <>
            <View>
                <TextInput
                    value={this.state.price}
                    keyboardType={"phone-pad"}
                    onChangeText={text => this.setState({ price: text })}
                    onFocus={() => {
                        this.setState({ price: '' })
                    }}
                />
                <View>
                    <Button
                        onPress={() => {
                            this.saveInput()
                        }}
                        title="Add"
                    />
                    <Button onPress={() => {
                        this.setState({isPrice: false});
                        this.saveInput()
                      }} title='Close Overlay'/>
                </View>
            </View>
        </>
    </ScrollView>
</Overlay>