React Hook setState не установлен на обещание - PullRequest
0 голосов
/ 21 мая 2019

Я использую Contentful CMS JS SDK, и приведенный ниже код не обновляет мое состояние React Hook. Это скорее обещания в сочетании с крючками реагирования в сочетании с проблемой рендера React - я считаю. Я понимаю, что обещание устанавливает значение ловушки, когда оно разрешается позднее, но к тому времени мой компонент уже рендерится с начальными данными (пустой строкой), поэтому, если это так, как я могу заставить свой компонент повторно рендеринг, когда состояние перехватчика реакции установлено с правильным значением из обещания, так что моя кнопка отображает его. Любая помощь приветствуется. Спасибо

Проблема лежит здесь.

...
import client from 'contentful'
  const [name, setName] = useState('')

  client.getEntry(data.fields.store.sys.id)
    .then(entry => setName(entry.fields.name))
    .catch(console.error)

  console.log('STORE URL', name) // name is not set
...
<Button title={name} /> // name still not set
....

1 Ответ

0 голосов
/ 22 мая 2019

Я только что попробовал ваш код, и он, кажется, работает для меня.:)

https://codesandbox.io/embed/react-hooks-demo-e4wgo

Я думаю, вы должны использовать useEffect хотя, как описано в этой статье .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...