当前位置:首页 > 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:

react thunk 如何使用

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架构如何

react架构如何

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

react如何循环

react如何循环

循环渲染列表 在React中循环渲染列表通常使用map方法,这是最常用的方式。通过map可以将数组中的每个元素转换为React元素并渲染到页面上。 const items = ['Apple', '…

如何监控react性能

如何监控react性能

使用 React Profiler API React 16.5 及以上版本内置了 Profiler API,可直接测量组件渲染时间。通过 <React.Profiler> 包裹目标组件,…

react 如何设置 代理

react 如何设置 代理

在 React 中设置代理 在开发过程中,为了跨域请求后端 API,可以通过配置代理来解决。以下是几种常见的设置代理的方法: 使用 package.json 配置代理 在 package.json…

react run如何搭配

react run如何搭配

运行 React 项目的常见方法 使用 create-react-app 脚手架 通过官方脚手架工具快速初始化项目并运行开发服务器: npx create-react-app my-app cd…

react如何传参

react如何传参

react传参方法 React中传递参数有多种方式,以下是常见的方法: 父组件向子组件传递参数 通过props传递参数是最常见的方式。父组件在调用子组件时,通过属性传递数据,子组件通过props接…