Я пробую новые React Hooks, и я немного застрял, поскольку пользовательский интерфейс не обновляется при обновлении локального состояния.Вот мой код,
import React, { useState, useEffect } from 'react';
import Post from './Post'
import PostForm from './PostForm';
import axios from 'axios';
function PostsList() {
const [posts, setPosts] = useState([]);
// setting up the local state using useEffect as an alternative to CDM
useEffect(() => {
axios.get('...')
.then(res => {
// the resposne is an array of objects
setPosts(res.data)
})
})
const handleSubmit = (data) => {
// the data I am getting here is an object with an identical format to the objects in the posts array
axios.post('...', data)
.then(res => {
// logging the data to validate its format. works fine so far..
console.log(res.data);
// the issue is down here
setPosts([
...posts,
res.data
])
})
.catch(err => console.log(err))
}
return (
<div>
<PostForm handleSubmit={handleSubmit} />
<h3>current posts</h3>
{ posts.map(post => (
<Post key={post.id} post={post} />
)) }
</div>
)
}
, когда я отправляю форму, пользовательский интерфейс мигает в течение доли секунды, а затем отображает текущее состояние без нового обновления, кажется, что что-то препятствует повторной визуализацииновое состояние.Если требуется больше кода / уточнения, пожалуйста, оставьте комментарий ниже.заранее спасибо.