Как сделать так, чтобы TextInput очищался после отправки в реагировать родной - PullRequest
0 голосов
/ 25 января 2020

У меня есть TextInput в моем коде, который не очищается после отправки, и я понятия не имею, почему он это делает или как его решить. Я смотрел на другие сообщения, которые имеют такую ​​проблему? но ни один не работает, или я не знаю, где разместить код, чтобы он был понятен после отправки.

Код

import React, { useState } from 'react';
import { 
StyleSheet, 
Text,
View, 
TextInput, 
Button,
} from 'react-native';


export default function AddList({ submitHandler }) {

const [text, setText] = useState('');

const changeHandler = (val) => {
    setText(val);
}
return(
    <View style={styles.container}>
        <View style={styles.wrapper}>
            <TextInput 
                style={styles.input}
                placeholder='text'
                onChangeText={changeHandler}
            />
            <Button onPress={() => submitHandler(text)} title='ADD' color='#333' />    
        </View>  
    </View>
 );
}

1 Ответ

1 голос
/ 25 января 2020

Просто создайте новую функцию после useState, как показано ниже:

const onSubmit = useCallback(() => {
   if (submitHandler) submitHandler(text)
   setText("")
}, [text])

и измените ввод текста и кнопку, как показано ниже:

   <TextInput
       style={styles.input}
       placeholder='What Tododay?'
       onChangeText={changeHandler}
       value={text}
   />
   <Button
       onPress={onSubmit}
       title='ADD TO LIST'
       color='#333'
    /> 

Не забудьте импортировать useCallback from реагировать .

Надеюсь, это поможет вам.

...