Напишите компонент, который показывает биографию для выбранного человека, используя предоставленный API. Компонент должен загружать биографию, вызывая асинхронную функцию fetchBio(person) из API при монтировании и при каждом изменении person. Эта асинхронная функция возвращает Promise, который в конечном итоге превращается в строку.
// api.js
const db = {
Taylor : 'This is a biography of Taylor.',
Bob : 'This is a biography of Bob.',
Alice : 'This is a biography of Alice.',
}
const fetchBio = async function(person) {
return new Promise((resolve, reject) => (
setInterval(
() => {
if (db[person]) resolve(db[person])
else reject(new Error("incorrect name!"))
}, 3000
)
)
)
}
export { fetchBio };
Code: https://github.com/Nolra/front_course_2023/tree/react-effect-junior
Документация (только en) 1) https://react.dev/reference/react/useEffect 2) https://react.dev/learn/you-might-not-need-an-effect
Домашнее задание: (https://nolra.github.io/react_hw/ - вкладка Effect, компонент Loading bio)
Напишите компонент, который показывает биографию для выбранного человека, используя предоставленный API. Компонент должен загружать биографию, вызывая асинхронную функцию fetchBio(person) из API при монтировании и при каждом изменении person. Эта асинхронная функция возвращает Promise, который в конечном итоге превращается в строку.