当前位置:首页 > React

react thunk 如何使用

2026-02-26 06:48:15React

使用 React Thunk 的基本步骤

安装 Redux 和 Redux Thunk 作为依赖项:

npm install redux redux-thunk

在 Redux store 配置中应用 Thunk 中间件:

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

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

创建异步 Action

Thunk 允许 action creator 返回函数而非普通 action 对象。该函数接收 dispatchgetState 作为参数:

const fetchUser = (userId) => {
  return async (dispatch) => {
    dispatch({ type: 'FETCH_USER_REQUEST' });
    try {
      const response = await fetch(`/api/users/${userId}`);
      const user = await response.json();
      dispatch({ type: 'FETCH_USER_SUCCESS', payload: user });
    } catch (error) {
      dispatch({ type: 'FETCH_USER_FAILURE', error: error.message });
    }
  };
};

在组件中调用异步 Action

通过 useDispatchconnect 派发异步 action:

import { useDispatch } from 'react-redux';

function UserProfile({ userId }) {
  const dispatch = useDispatch();

  useEffect(() => {
    dispatch(fetchUser(userId));
  }, [dispatch, userId]);
}

处理多个异步操作

Thunk 可以组合多个异步操作或条件派发:

const fetchPostsIfNeeded = () => {
  return (dispatch, getState) => {
    if (getState().posts.shouldFetch) {
      dispatch(fetchPosts());
    }
  };
};

错误处理最佳实践

在异步操作中统一捕获错误并派发失败 action:

const updateUser = (userData) => {
  return async (dispatch) => {
    try {
      const response = await api.updateUser(userData);
      dispatch({ type: 'UPDATE_SUCCESS', payload: response });
    } catch (error) {
      dispatch({ type: 'UPDATE_FAILURE', error });
      throw error; // 允许组件捕获错误
    }
  };
};

react thunk 如何使用

分享给朋友:

相关文章

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在 s…

react架构如何

react架构如何

React 架构核心概念 React 的架构围绕组件化、虚拟 DOM 和单向数据流设计。组件是构建用户界面的独立模块,分为函数组件和类组件。虚拟 DOM 通过高效的 Diff 算法减少直接操作真实 D…

react如何浮动

react如何浮动

使用 CSS 实现浮动 在 React 中实现浮动效果可以通过 CSS 的 float 属性完成。在组件的样式文件或内联样式中直接设置 float: left 或 float: right。…

react如何拓展

react如何拓展

React 拓展方法 使用高阶组件(HOC) 高阶组件是一种复用组件逻辑的方式,通过接收一个组件并返回一个新组件实现功能拓展。例如,为组件添加日志功能: function withLogging…

如何配置react

如何配置react

配置React项目的步骤 安装Node.js和npm 确保系统已安装Node.js(包含npm)。可通过官网下载并安装最新版本。安装完成后,运行以下命令验证版本: node -v npm -v 创…

react如何开发

react如何开发

React 开发基础步骤 安装 Node.js 和 npm/yarn 确保系统已安装 Node.js(包含 npm)或 Yarn。React 项目依赖这些工具管理包和运行脚本。官方推荐使用 Node.…