使用redux渲染并做出反应

时间:2018-02-04 19:53:52

标签: reactjs redux react-redux

流速:

  1. 获取一些帖子
  2. 将它们存放在商店
  3. 在页面上显示
  4. 导航到另一页
  5. 导航回来
  6. 根据这5个步骤,您已经有一个存储在redux商店中的帖子列表。

    我的问题是,当请求完成后,react会重新呈现列表,组件会收到与道具相同的帖子列表吗?

2 个答案:

答案 0 :(得分:0)

基本上是的。但是您不希望从组件中调用API。建议的做法是使用redux-sagas或某种中间件来处理API调用,如:

component -> call fetch -> receive data -> dispatch action creator -> update store -> receive same data from props

但更像是:

component -> dispatch action creator -> call fetch from API middleware -> receive data -> dispatch action creator -> update store -> receive data from props

如果您在更改路线时担心不必要的重新渲染并返回,则可以阻止您的组件将您的API中间件告知call fetch。这样您就可以从商店获取数据,而不会向API发送另一个请求。

这是迄今为止最简单的API middleware,它可以帮助你开始使用react和redux

答案 1 :(得分:0)

我假设您正在使用react-router,而不是列表将重新呈现,因为react-route通常在路由之间导航时卸载/安装组件。 将项目置于状态仅意味着您不必再次获取它们(如果需要)并且列表可以立即呈现项目。只有在减少新状态时才会重新呈现列表。