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

2023-12-28

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


开始使用此方法的最简单方法是将其添加到您的操作中,使用称为 thunk 的函数以及redux-thunk https://github.com/gaearon/redux-thunk#composition。您需要做的就是将 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
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React/Redux 架构中 API 调用应该放在哪里? 的相关文章

  • 在 React 组件中动态导入图像

    我正在尝试在某些 React 组件中动态加载图像 我在用着require而不是简单地传递路径以提高性能 我想我可以使用内联require它确实有效 然而 当我试图通过prop相反 我收到错误 我究竟做错了什么 EDIT 事实证明两者都有效
  • React - 能够通过 props 控制 SVG 的填充颜色

    我有一个 SVG 这里称为 example svg 它作为组件被调用和创建 如下所示 import ReactComponent as Example from example svg import styles from index mo
  • 带指针的重新图表工具提示(react,tooltip) - 代码部分

    这个问题是此处发布的问题的代码 用指针重新绘制工具提示 react tooltip https stackoverflow com questions 43257143 recharts tooltip with pointer react
  • 打包器无法启动

    我想我在某个时候升级了节点 现在当我尝试使用以下命令运行打包程序时npm start它抱怨 npm start react native start Looks like you installed react native globall
  • ant design select占位符问题

    我在我的 React 应用程序中使用 antd design 这是我遇到问题的代码片段
  • 考虑使用“jsdom”测试环境

    我有这个简单的测试 import React from react import render from testing library react import Button from describe Button gt it rend
  • 如何在要测试的 React 组件内模拟自定义钩子?

    如果您有一个调用获取数据的自定义挂钩的 React 组件 那么在测试 React 组件时模拟内部自定义挂钩结果的最佳方法是什么 我看到两种主要方法 1 Jest mock 自定义钩子 这似乎是最推荐的方法 但它似乎要求测试对内部实现细节以及
  • 使用 React Native 在手机上搜索音频文件

    我正在使用 React Native 开发音乐应用程序 但我一直在努力找出搜索和播放已保存在客户端手机上的音频文件的最佳方法 我只是不确定解决这个问题的最佳模块 库是什么 或者 iOS Android 操作系统是否允许这种类型的用户文件访问
  • 我在 Facebook 上的“access_token”是“不正确的值”

    我正在使用 django rest auth 它是 Django all auth 的 API 扩展 我正在构建一个可以使用 Facebook 令牌注册 登录的移动应用程序 网址 http localhost 8000 rest auth
  • 为什么当我保存更改时,Expo 没有刷新?

    当我进行更改并保存它们时 模拟器中的应用程序不会刷新 我认为模拟器没有连接到 Metro 服务器 我尝试通过运行清除缓存expo r c 但这没有做任何事情 您是否尝试启用快速刷新 我遇到了同样的问题 但在启用 快速刷新 后 自动刷新再次开
  • ListView无法滚动

    正如你在所附的 GIF 中看到的 我无法滚动浏览ListView 一旦我释放鼠标 视图就会恢复到原始位置 我已经阅读了文档 似乎滚动应该只是工作 这是执行render render function return
  • 如何在 JSX 中使用 switch case:ReactJS

    我的反应应用程序中导入了四个组件 我如何有条件地渲染组件之一 基于道具 这就是我想做的
  • React Redux - 在辅助函数中访问现有存储

    我试图在反应组件之外获取存储实例 存储状态 即在单独的辅助函数中 我有我的减速器 我的动作 我在最上面的组件中创建了一个商店 configStore js import createStore from redux import gener
  • 如何在 React Native 中使用相同的 Firebase 数据库在两个应用程序之间进行通信?

    我有两个不同的应用程序使用相同的实时数据库 在第一个应用程序中 我发送的订单包含一些要保存在数据库中的数据字段 在另一个应用程序中 我只添加一个侦听器 firebase database ref userOrder currentUser
  • 访问其他类的 this.state 值 [React Native]

    我只是想问如何从其他类访问 this state sampleString 这是我的代码 class MainClass extends Component constructor props super props this state
  • 公式无效:/usr/local/Homebrew/Library/Taps/facebook/homebrew-fb/buck.rb

    我运行了brew 命令来安装Facebook homebrew tap 我有一个 M1 Apple Silicon 芯片组 并使用 Rosetta 下的终端来执行 brew 命令 brew tap facebook fb 我收到错误消息 g
  • 将 next.js 与纱线工作区结合使用

    今天遇到了这样的项目结构的复杂情况 packages app pages package json ui kit pages package json shared babelrc package json root lvl 包 json
  • 反应独特的“关键”错误

    我正在浏览 React 中的待办事项列表教程 并遇到以下错误 我花了相当长的时间 只是找不到错误 这是错误和组件的代码 这就是代码对于课程存储库 此提交中出现问题 https github com andrewjmead react cou
  • 如何让 webpack 转换 React 生产文件?

    当我使用 webpack 与 React 16 捆绑我的应用程序时 我在浏览器中收到 Uncaught ReferenceError require is not Defined 对于react和react dom 导致错误的资源是reac
  • Expo eas-cli iOS 构建失败

    我已经使用 React Native 创建了一个应用程序 并尝试通过 Expo 的 eas cli 创建一个 iOS 应用程序商店 跑步时eas build platform ios the Fastlane build failed wi

随机推荐

  • JavaScript 运行时错误:“$”未定义

    有人可以帮助解决我的代码中的这个错误吗 当我在 Internet Explorer 中启动网站时出现此错误 JavaScript 运行时错误 未定义 这是代码请帮助我在java脚本中需要更改什么
  • 添加逗号或空格以每三位数字分组

    我有一个向数字添加逗号的函数 function commafy num num toString replace B d 3 g 不幸的是 它不太喜欢小数 鉴于以下使用示例 扩展我的功能的最佳方法是什么 commafy 123 123 co
  • 将节点插入抽象语法树

    ast模块的文档 https docs python org 3 library ast html解释如何使用以下命令替换 AST 中的节点节点转换器 https docs python org 3 library ast html ast
  • 从 Scala 函数到 Java 函数的隐式转换

    我想创建从 Scala 函数 可能是匿名 到java util function Function 这是我所拥有的 import java util function Function gt JavaFunction implicit de
  • 如何解决 ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值

    所以我有这个代码 Data quest pd read csv inputFile csv names A1 A2 A200 Sim print quest head Set up Data and Label X quest drop S
  • 如何在程序运行时且仅在用户确认关闭并卸载后才将其卸载 - Inno Setup

    嘿 当我的程序在 Windows 中运行时 我需要使用 Inno Setup 卸载它 我喜欢我的卸载程序检测它是否正在运行并向用户提供一个消息框 例如 Windows 10 登录背景更改器正在运行 是否要关闭它并卸载 上述消息框应该有两个按
  • 访问 cookie,希望是在 JavaScript 中

    我正在开发一个 Firefox 插件 它允许用户 所有用户都属于特定组 该插件的受众范围非常有限 从状态栏查看其身份验证 cookie 的状态 我们都必须进行身份验证才能访问与工作相关的网站 但是当 cookie 过期时我们不会收到任何警告
  • 使用notepad++执行命令

    如何使用 Notepad 中的运行命令指定要处理的实际文件 例如 我想使用实际文件作为输入或 cs 编译器等运行 pdflatex 使用整个路径是不切实际的 它必须适用于任何实际文件 您可以使用执行字符串中的变量自动添加当前文件 C tem
  • require.js 的替代方式是 require?

    require js 的新功能 我有这个 define jquery underscore backbone views sidebar views dashboard views users views venues views paym
  • 如何确定与 PHP 中的 MIME 类型关联的扩展名?

    我可以使用 MIME 类型到 PHP 扩展的快速而肮脏的映射吗 不是内置的 但自己推出并不难 function system extension mime types Returns the system MIME type mapping
  • 在 32 位应用程序中使用 64 位整数可以吗?

    我注意到在 C 和 C 中 我们可以使用int64 t 或者只是一个long long 如果我编译32位代码使用这些类型 我会遇到任何性能问题吗64bit and or 32位机器 除了节省一些内存之外 我还有理由只使用int 毕竟 64
  • Postgresql 的函数

    在这个网站上我看到了一个函数 我想将其与 postgresql 一起使用 https raresql com 2013 05 16 sql server excel financial functions pmt https raresql
  • Angular 12 库源映射不可用

    升级到 Angular 12 后 自定义 Angular 库组件的源映射不再可用于调试 这是一部分angular json来自使用该库的 Angular 应用程序模块 projects myapp build configurations
  • 使用 POST 而不是 GET 的 REST API

    假设某个服务提供了一些我可以像这样使用的功能 GET service function param1 value1 param2 value2 我可以将它与 POST 查询一起使用吗 POST service function param1
  • 如何在PyQt4中用动画画一条线

    我有一个要点清单 例如 points 160 75 115 567 How to draw a line in PyQt4 so it would be something like this 提前致谢 EDIT For the recor
  • Java 获取 java.lang.Number 或原语的通用子类的 valueOf

    在阅读了很多问题后 我问自己是否可以解决将字符串转换为通用数字而不使用硬编码方法的困境 例如 我从方法中获取类型为 Class 的参数 使用 Number isAssignableFrom 或其他方式我可以检查这是否是一个数字类 但我也从用
  • Lua忽略转义序列

    目前Lua有以下转义序列 a Bell b 退格键 f 换页 n 新队 r 回车 t Tab v 垂直制表符 反斜杠 双引号 单引号 nnn 八进制值 nnn 是 3 个八进制数字 xNN 十六进制值 Lua5 2 LuaJIT NN是两个
  • 使用元素自己的宽度分配左边距

    我想设置margin left元素宽度的负一半 这会获取文档的宽度 services backPanel gt div css margin top this height 2 margin left this width 2 我究竟做错了
  • WebBrowser-Control - 单击链接打开默认浏览器

    我在 WPF 应用程序中使用 WebBrowser Control 例如
  • React/Redux 架构中 API 调用应该放在哪里?

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