首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React Hook的状态未更新

React Hook的状态未更新
EN

Stack Overflow用户
提问于 2019-05-15 16:09:56
回答 1查看 69关注 0票数 0

我构建了一个React Hook,如下所示:

代码语言:javascript
复制
const Index = (props) => {
  const [posts, setPosts] = useState([])

  useEffect(() => {
    const getPosts = async () => {
      const posts = await getPostFromWebService()
      for (let i of posts) {
        setPosts([ ...posts, i ])
      }
    }

    getPosts()
  }, [])

  // ... remaining code
}

但是,即使web服务返回5个帖子,也只有最后一个帖子会在posts状态下更新。因此,它只收到一个帖子,而不是5个。

我在这里做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-15 16:19:07

听起来你想要这样的东西。在这里,我们将让useEffect监听postCount中的任何更改,这样我们就可以触发您的逻辑来获取更多的帖子。

代码语言:javascript
复制
const Index = (props) => {
  const [posts, setPosts] = useState([])
  const [postCount, setPostCount] = useState(0)

  useEffect(() => {
    const getPosts = async () => {
      const newPosts= await getPostFromWebService()

      setPosts([...posts, newPosts])
    }
  }, [postCount])

  return(
    <div>
       <button onClick={() => setPostCount(postCount + 5)}>Get more posts</button>
    </div>
  )
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56144457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档