Я пытался написать какой-нибудь простой код React для извлечения данных из фиктивного API и отображения их на странице.Но когда я пытаюсь отобразить мой массив сообщений, возвращаемых axios из асинхронной функции, это выдает мне ошибку.
Я попытался установить переменную props.posts, но она все еще не работает.
Вот структура моего приложения и функция, которую я использую для получения пользователей из API в виде JSON:
function App() {
// Hook that declares a posts state
const [posts, setPosts] = useState([])
useEffect(() => {
getPosts().then(setPosts)
}, [])
return (
<div className='App'>
<header className='App-header'>
<PostList posts={posts} />
</header>
</div>
)
}
function PostList(props) {
return (
<ul>
{props.posts.map(post => (
<Post post={post} />
))}
</ul>
)
}
function Post(props) {
return <li>{props.post.title}</li>
}
async function getPosts() {
try {
let posts = await axios.get(
'https://jsonplaceholder.typicode.com/posts'
)
console.log(posts)
return posts
} catch (error) {
console.error(error)
}
}
И это проблемный бит:
function PostList(props) {
return (
<ul>
{props.posts.map(post => (
<Post post={post} />
))}
</ul>
)
}
Я ожидаюприложение для отображения через массив сообщений, но каждый раз выдает ошибку.