Реагируйте на собственный текстовый ввод, не обновляя состояние в функциональном компоненте с помощью onhange

#javascript #reactjs #react-native #react-hooks

Вопрос:

Я использую в собственном функциональном компоненте react, и при изменении состояния, похоже, не обновляется «имя».

Я регистрирую новое состояние консоли с помощью useEffect, чтобы проверить, обновлено ли состояние, и оно возвращается неопределенным, как если бы входной текст никогда не был задан в качестве состояния «имя».

 function AddTask ()  {
    
    const [name, setName] = useState('');
  
    useEffect(() => {
        console.log(name),name;
        
    })

    const updateTaskInfo = event => setName(event.target.value);
    
        return (
             <TextInput
                  onChange={updateTaskInfo}
                  placeholder="Name"
                  value={name}
             />
 );
}

export default AddTask;
 

Ответ №1:

используйте onChange так event.nativeEvent.target.value

 <TextInput onChange={ event => setName(event.nativeEvent.target.value) } />
 

или использовать onChangeText так

 <TextInput onChangeText ={ value => setName(value ) } />
 

Комментарии:

1. Оба они отлично работают для меня, спасибо! Я не использовал «ценность», которую я теперь понимаю