useState не регистрируется при первом рендере - PullRequest
0 голосов
/ 08 июня 2019

У меня очень простое приложение реагирования.Я пытаюсь установить переменную состояния, а затем сразу после console.log эту переменную, но получаю пустое значение.

var [techFilterTerm, setTechFilterTerm] = useState('');
setTechFilterTerm('Test');
console.log(techFilterTerm);

Я ожидаю, что при первом рендере это будет показывать «Test» в консоли - этооднако показывает пустую строку.Что здесь происходит?

1 Ответ

2 голосов
/ 08 июня 2019

Если я правильно понимаю вашу проблему, вы хотите узнать обновленное значение, и для этого вы можете использовать useEffect api, который будет вызываться при изменении одного из значений, которое вы хотите наблюдать.Значения, которые вы хотите наблюдать, вы должны передать в качестве второго параметра в массив в useEffect.В вашем случае вы хотите узнать обновленное значение для techFilterTerm, чтобы вы могли передать techFilterTerm в качестве второго аргумента для useEffect, как показано ниже.

 useEffect(() => {
      //here you will get the updated value whenever there is change in value
  },[techFilterTerm]); 

здесь приведена ссылка для получения дополнительной информации об useEffect.

https://reactjs.org/docs/hooks-effect.html

...