反应-哪里是获取数据的最佳位置?

时间:2019-02-07 16:18:45

标签: reactjs redux

这是一个概念性问题,涉及一种更好的方法,即使用react和与redux进行反应来获取数据。

我有一个名为UsersSelect的组件,它是显示用户信息的选择组件。目前,我正在此组件内部获取用户数据,以使其更可重用。

我还有一个UsersTable组件,其功能与UsersSelect相同,有时,我将它们都呈现在同一屏幕上,这导致两次相同的提取。为了避免这种情况,我在 takeLatest 中使用了 redux-saga

所以我的问题是:

  • 可以使用吗?
  • 我应该将提取逻辑放在父组件上吗?像UsersPage组件一样?
  • 有没有更好的选择来简化这一过程?

2 个答案:

答案 0 :(得分:1)

我同意Miro J.的评论。

由于您要将相同的数据用于两个不同的组件,因此最好在父级中获取数据并将其作为道具传递给子级。

就您而言,(看来)您的两个组件都息息相关。

在组件不太紧密但仍然需要数据的情况下,还可以在设置根App组件时加载数据。

答案 1 :(得分:0)

对于react体系结构,没有redux,提取数据在父级中可以正常工作,是的,UsersPage组件应该具有要工作的子级组件的数据,但是对于redux来说,您可以选择创建presentational components或实现factory pattern,但这需要后端架构对

const factoryComponent = (FactoryComponent, DefaultComponent, props) => ({
      Component: FactoryComponent || props.component || DefaultComponent,
      props: { ...props, component: FactoryComponent ? props.component : fetch(url).then(data=>console.log(data)); },
    })
相关问题