Redux Toolkit的一些常见CreateAsyncThunk用例是什么

Jpark9061

有人可以向我解释一下,像我9岁时如何使用createAsyncThunk吗?动作字符串是做什么用的?是否出于逻辑/路径原因临时创建并在不久后销毁?我可以使用动作字符串做什么?人们通常将其用作什么?我一直在盯着文档,但我听不懂。

这就是别人使用代码的方式,如果有人可以解密,我会很高兴。

const action = createAsyncThunk('send/sendAction', async (form, thunkAPI) => {
  const data = await axios.post('/api', object);
  data.reduxRequestId = thunkAPI.requestId;
  return data;
}

官方文档:https : //redux-toolkit.js.org/api/createAsyncThunk

杰森

好了,您可以将Async Thunk函数和Reducer函数划分为单独的类型。它们并不完全相同,您应该注意这一点。

Reducer函数无法执行异步代码,它们可以执行代码并更新状态,但是如果您要从服务器获取或更新某些内容,然后更新Redux状态,则仅使用reducer便无法实现此功能。职能。

因此,这就是为什么我们需要Action创建者(或AsyncThunk函数)的原因,这些创建者使我们能够执行异步代码,然后更新Redux的实际状态。

const action = 

您定义一个常量,该常量接收(在这种情况下)另一个函数,createAsyncThunk函数接收两个参数,第一个为action typethe,第二个为payloadCreator callback

const action = createAsyncThunk('send/sendAction', async (form, thunkAPI) => {

因此在这种情况下,将action接收预定义的对象(createAsyncThunk)。

如果您还记得,要使用reducer函数,通常需要两个参数,一个是actionType,第二个是payload

使用createAsyncThunk时,它接收的第一个参数是actionType,'send/sendAction'这是减速器将要接收的actionType,而接收两个参数的异步部分是有效负载生成器。

const action = createAsyncThunk('send/sendAction', async (form, thunkAPI) => {
  const data = await axios.post('/api', object);
  data.reduxRequestId = thunkAPI.requestId;
  return data;
}

函数createAsyncThunk本身返回两个参数,一个是actionType,第二个是Payload执行reducer函数所需的参数。

现在,如果您想使用自己的方法,应该是这样的。

dispatch(action(formValuesFromLocalState, APIInstance));

在这种情况下,您传递给该函数的参数或参数(formValuesFromLocalState和APIInstance)将传递给异步函数,因此它们将像这样

const action = createAsyncThunk('send/sendAction', async (form = formValuesFromLocalState, thunkAPI = APIInstance) 

使用这些参数,您的方法将执行的方式或者您可能想要执行的方式应该是这样的。

const action = createAsyncThunk('send/sendAction', async (form, thunkAPI) => {
  const object = /some specific way you want to morph the form values/
  const data = await axios.post('/api', object);
  data.reduxRequestId = thunkAPI.requestId; 
  return data;  (this is the actual data which will be returned as a payload).
}

他们在文档中提出了一个更好的例子

他们以这种方式执行功能:

dispatch(fetchUserById(123))

实际的功能是:

const fetchUserById = createAsyncThunk(
  'users/fetchByIdStatus',
  async (userId, thunkAPI) => {
    const response = await userAPI.fetchById(userId)
    return response.data
  }
)

因此,仅在这种情况下才接收函数userIdthunkAPI而不使用。

'users/fetchByIdStatus'

是将要分派的actionType。

const response = await userAPI.fetchById(userId)
        return response.data

API调用是异步代码,return语句return response.data是实际有效负载。

所以最后,调度功能可能看起来像这样:

dispatch({type:'users/fetchByIdStatus', payload:(whatever response.data has)});

希望这种解释是可以理解的,请原谅我英语不好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

bash中“ $ *”的一些用例是什么?

来自分类Dev

vim中“选择模式”的常见用例是什么?

来自分类Dev

React + Redux在组件更新后做一些事情

来自分类Dev

Redux-persist 如何持久化一些状态

来自分类Dev

React redux saga - 得到一些奇怪的行为

来自分类Dev

将索引对象添加到Redux商店(Redux Toolkit)的最佳方法是什么?

来自分类Dev

Redux-Toolkit createAsyncThunk Dispatch显示为未定义

来自分类Dev

React Redux - 寻找 connect() 的用例

来自分类Dev

用Redux实现事务的正确方法是什么

来自分类Dev

用 Redux 更新整个状态的方法是什么?

来自分类Dev

Redux Toolkit-重置状态

来自分类Dev

Redux Toolkit中的getState()方法

来自分类Dev

Redux Toolkit历史API推送

来自分类Dev

如何在Redux Toolkit的createSlice中使用Redux-Thunk?

来自分类Dev

如何使用Redux-Toolkit重置Redux Store

来自分类常见问题

redux中常数的意义是什么?

来自分类Dev

Redux中的选择器是什么?

来自分类Dev

Redux异步操作测试的目的是什么?

来自分类Dev

结合使用redux的最佳方法是什么?

来自分类Dev

是什么导致redux状态加载延迟?

来自分类Dev

Redux中的Middlware到底是什么?

来自分类Dev

React Redux中的纯动作是什么?

来自分类Dev

Redux 传奇的更好结构是什么

来自分类Dev

等待Redux道具,然后对componentDidMount中的道具进行一些操作

来自分类Dev

我在用React从Redux调用状态时遇到一些麻烦

来自分类Dev

我该如何使用React / Redux分派一些东西?

来自分类Dev

Redux-observable:在一些数据获取史诗完成后调用辅助函数

来自分类Dev

向 React/Redux 中的主 app.js 文件传递一些东西

来自分类Dev

你如何使用 redux get 函数更新一些状态?值未在片场正确更新

Related 相关文章

  1. 1

    bash中“ $ *”的一些用例是什么?

  2. 2

    vim中“选择模式”的常见用例是什么?

  3. 3

    React + Redux在组件更新后做一些事情

  4. 4

    Redux-persist 如何持久化一些状态

  5. 5

    React redux saga - 得到一些奇怪的行为

  6. 6

    将索引对象添加到Redux商店(Redux Toolkit)的最佳方法是什么?

  7. 7

    Redux-Toolkit createAsyncThunk Dispatch显示为未定义

  8. 8

    React Redux - 寻找 connect() 的用例

  9. 9

    用Redux实现事务的正确方法是什么

  10. 10

    用 Redux 更新整个状态的方法是什么?

  11. 11

    Redux Toolkit-重置状态

  12. 12

    Redux Toolkit中的getState()方法

  13. 13

    Redux Toolkit历史API推送

  14. 14

    如何在Redux Toolkit的createSlice中使用Redux-Thunk?

  15. 15

    如何使用Redux-Toolkit重置Redux Store

  16. 16

    redux中常数的意义是什么?

  17. 17

    Redux中的选择器是什么?

  18. 18

    Redux异步操作测试的目的是什么?

  19. 19

    结合使用redux的最佳方法是什么?

  20. 20

    是什么导致redux状态加载延迟?

  21. 21

    Redux中的Middlware到底是什么?

  22. 22

    React Redux中的纯动作是什么?

  23. 23

    Redux 传奇的更好结构是什么

  24. 24

    等待Redux道具,然后对componentDidMount中的道具进行一些操作

  25. 25

    我在用React从Redux调用状态时遇到一些麻烦

  26. 26

    我该如何使用React / Redux分派一些东西?

  27. 27

    Redux-observable:在一些数据获取史诗完成后调用辅助函数

  28. 28

    向 React/Redux 中的主 app.js 文件传递一些东西

  29. 29

    你如何使用 redux get 函数更新一些状态?值未在片场正确更新

热门标签

归档