Должен ли я использовать состояния?
Да! Вы должны использовать объект состояния для сохранения результатов fre sh, так как setState может быть asyn c, и когда вы обновляете состояние, происходит повторное рендеринг и обновляется пользовательский интерфейс. Проверьте это:
Установите это, чтобы инициализировать состояние:
const [result, setResult] = useState({});
, где result
является свойством, а setResult
будет методом обновления.
Теперь вы должны использовать его в шаблоне компонента, например:
{ result && <a target="_blank" href={result}>Google Link</a> }
{/* if result (its a promise) is not available when render happens then it might err. */}
Теперь в вашем useEffect
:
useEffect(() => {
getUrl()
.then(x => x.json())
.then(x => {
const { result } = x;
setResult(result); // <-----------set it here
});
},[result]); //<---pass it here it rerenders when state.result changes after first render.