reactjs - React/Redux 架构中 API 调用应该放在哪里?

标签 reactjs react-native redux reactjs-flux

我正在尝试从 API 检索一些数据并将其传递到我的应用程序中。然而,作为 React/Redux 的新手,我想知道从哪里进行这些调用以及如何将其传递到我的应用程序中?我有标准的文件夹结构(组件、 reducer 、容器等),但我不确定现在将 API 调用放在哪里。

最佳答案

开始使用此方法的最简单方法是将其添加到您的操作中,使用名为 thunk 的函数以及 redux-thunk 。您需要做的就是将 thunk 添加到您的商店:

import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers/index';

const store = createStore(
  rootReducer,
  applyMiddleware(thunk)
);

然后在您的操作中创建一个调用 api 的函数:

export const getData() {
  (dispatch) => {
    return fetch('/api/data')
      .then(response => response.json())
      .then(json => dispatch(resolvedGetData(json)))
  }
}

export const resolvedGetData(data) {
  return {
    type: 'RESOLVED_GET_DATA',
    data
  }
}

关于reactjs - React/Redux 架构中 API 调用应该放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40250036/

相关文章:

react-native - 如何通过 react 原生 map 框获取我们正在查看的位置?

html - React Native : 'top' property behaving as expected, 但 'bottom' 不是

javascript - 为什么 shouldComponentUpdate 说当前的 props 是 React 中的新 props?

reactjs - 如何在reactjs中渲染列表项

javascript - 在进行事件处理练习时,为什么我不需要使用 componentDidMount() 方法?

javascript - 'yield' 表达式隐式生成 'any' 类型,因为其包含的生成器缺少返回类型注释

javascript - ES6 更改为 API 请求中的固定值

react-native - 我如何为 AsyncStorage 设置到期日期 - react 原生

reactjs - 使用 immer 将 Redux 状态数组替换/更改为其他数组

javascript:为什么 javascript 对象中没有键