如何让 Redux Thunk 和 Apollo GraphQL 协同工作

     2023-02-22     303

关键词:

【中文标题】如何让 Redux Thunk 和 Apollo GraphQL 协同工作【英文标题】:How to make Redux Thunk and Apollo GraphQL work together 【发布时间】:2017-08-19 15:58:35 【问题描述】:

在我的项目中,Redux Thunk 用于将所有异步函数保存在动作创建器中。

现在我正在尝试将 Apollo GraphQL 添加到我的项目中,一切正常,除了将 mutations 添加到我的功能组件并在那里调用它们时,它会破坏 redux thunk 架构。

如何解决?我想我可以创建新的动作创建器方法并将突变传递给它们,但它很快就会变成样板,这对我来说似乎不是一个好的解决方案。

【问题讨论】:

【参考方案1】:

Apollo 突变不会破坏 redux thunk 架构。如果您需要在突变后更新自己的减速器,则从突变的thencatch 中分派这些减速器的操作。 Apollo 的 graphql 容器旨在替换异步 redux 中间件(thunk、sagas、epics),而不是破坏它。

对于 Apollo Client 1.0

如果需要,您还可以将自己的 reducer 连接到 Apollo 调度的相同操作(APOLLO_MUTATION_INIT、APOLLO_MUTATION_RESULT 等)。只需确保您将 apollo 商店与您自己的商店集成在一起即可。见http://dev.apollodata.com/react/redux.html。

更新:迁移到 Apollo Client 2.0

Apollo Client 2.0 移除了使用 redux 作为其缓存(存储)的依赖。如果您仍然希望能够在减速器中使用 1.0 样式的操作,可以使用此链接 https://www.npmjs.com/package/apollo-link-redux(自述文件中的示例用法)。

【讨论】:

如何使用 redux-thunk 调度操作让 connected-react-router 重定向?

】如何使用redux-thunk调度操作让connected-react-router重定向?【英文标题】:HowdoIgetconnected-react-routertoredirectusingaredux-thunkdispatchaction?【发布时间】:2018-11-2714:21:41【问题描述】:我正在开展一个新项目。我正在使用带有redux和thunk的c... 查看详情

如何使用 redux-thunk `bindActionCreators`

】如何使用redux-thunk`bindActionCreators`【英文标题】:howto`bindActionCreators`withredux-thunk【发布时间】:2018-05-0121:15:53【问题描述】:我对JavaScript和react-native还是很陌生,我有一个需要添加功能的现有项目。它使用redux和redux-thunk和redux... 查看详情

如何使用 redux-thunk 和 TypeScript 调度 ThunkAction

】如何使用redux-thunk和TypeScript调度ThunkAction【英文标题】:HowtodispatchThunkActionwithredux-thunkandTypeScript【发布时间】:2021-02-2715:25:45【问题描述】:我在使用Typescript调度redux-thunk操作时遇到问题。importAnyAction,applyMiddleware,createStorefrom\... 查看详情

thunk 和 action 完成后如何使用 redux 的当前状态?

】thunk和action完成后如何使用redux的当前状态?【英文标题】:HowcanIusethecurrentstatusofreduxafterthethunksandactionshavefinished?【发布时间】:2021-08-0502:40:04【问题描述】:在thunk和action完成后,如何使用redux的当前状态?问题出在handleSubmit... 查看详情

React+Redux+thunk如何组织业务逻辑

】React+Redux+thunk如何组织业务逻辑【英文标题】:HowtoorganizethebusinesslogicinReact+Redux+thunk【发布时间】:2018-06-0612:05:03【问题描述】:我在使用react+redux的前端工作。众所周知,redux创建了一个容器组件,负责托管业务逻辑。实际上... 查看详情

如何使用 getState 和 redux thunk

】如何使用getState和reduxthunk【英文标题】:HowtousegetStatewithreduxthunk【发布时间】:2018-06-0312:46:04【问题描述】:我有一个名为searchResult()的动作创建者,它从Firebase获取数据,然后根据另一个名为SearchReducer的缩减程序(由动作创... 查看详情

如何使用 thunk 和 useDispatch(react-redux 挂钩)从操作中返回承诺?

】如何使用thunk和useDispatch(react-redux挂钩)从操作中返回承诺?【英文标题】:HowtoreturnapromisefromanactionusingthunkanduseDispatch(react-reduxhooks)?【发布时间】:2019-11-0318:05:28【问题描述】:我刚开始探索react-redux钩子,我很好奇如果我... 查看详情

如何使用“redux-thunk”调用 ajax?

】如何使用“redux-thunk”调用ajax?【英文标题】:howtocallajaxinreactusing`redux-thunk`?【发布时间】:2017-05-1123:14:26【问题描述】:我正在尝试使用redux-thunk和axios调用ajax。我想从json文件中获取数据简单的方法(按钮点击调用这样的)... 查看详情

如何测试包含多个 API 请求和数组转换的 redux-thunk 操作?

】如何测试包含多个API请求和数组转换的redux-thunk操作?【英文标题】:Howtotestaredux-thunkactionthatcontainsmultipleAPIrequestsandarraytransformations?【发布时间】:2020-06-0621:11:42【问题描述】:我有一个redux-thunk操作,其中包含多个API请求,... 查看详情

如何使用 redux-thunk 和 try-catch 处理多个调度结果?

】如何使用redux-thunk和try-catch处理多个调度结果?【英文标题】:Howtohandlemultipledispatchresultsfromreactusingredux-thunkandtry-catch?【发布时间】:2020-09-1611:26:03【问题描述】:我正在使用redux-thunk进行操作调用,并使用reducer返回状态。我... 查看详情

Redux Thunk 和 Redux Saga 有啥区别?

...ReduxThunk和ReduxSaga都是Redux的中间件。两者有什么区别以及如何确定何时使用ReduxThunk或ReduxSaga?【问题讨论】:Pro 查看详情

redux 工具包查询和创建异步 thunk 有啥区别?

...别?【发布时间】:2022-01-2003:21:09【问题描述】:我了解如何使用createasyncthunk和它查询的redux工具,如果redux工具包查询解决了挂起、已完成、已拒绝并且还捕获 查看详情

Redux-thunk 异步调用和状态

...了React或React-Native中Redux-thunk异步操作的模式,以及我们如何对操作状态进行用户反馈。我觉得要么我不理解这个模式,要么还有其他谜题。因此,在我的React-native应用程序中(但它也可能适用于React),我想 查看详情

使用 axios 和 redux-thunk 以 redux-form 发布请求

...orm【发布时间】:2017-08-3004:09:00【问题描述】:我不知道如何使用axios和redux-thunk发出发布请求,以便在查询之后调度操作。这是我的请求模块exportdefaultget:function(action,url)return(dis 查看详情

getState 和 dispatch 如何在 redux-thunk action creator 中导入?

】getState和dispatch如何在redux-thunkactioncreator中导入?【英文标题】:HowaregetStateanddispatchimportedinredux-thunkactioncreator?【发布时间】:2020-02-0321:54:06【问题描述】:import_from\'lodash\';importjsonPlaceholderfrom\'../apis/jsonPlaceholder 查看详情

如何将 thunk 或回调函数传递给 redux 操作。在 redux store 中为模态和 toast 确认通知序列化函数

】如何将thunk或回调函数传递给redux操作。在reduxstore中为模态和toast确认通知序列化函数【英文标题】:Howtopassathunkorcallbackfunctionintoareduxaction.Serializingfunctionsinareduxstoreformodalsandtoastconfirmnotifications【发布时间】:2017-01-2908:59:15【... 查看详情

如何重构 redux + thunk 动作/常量

】如何重构redux+thunk动作/常量【英文标题】:Howtorefactorredux+thunkactions/constants【发布时间】:2017-07-2711:21:39【问题描述】:在我的react/redux/thunk应用程序中,我使用如下操作:functioncatsRequested()returntype:CATS_REQUESTED,payload:,;functioncats... 查看详情

如何测试 redux-thunk 中间件异步功能?

】如何测试redux-thunk中间件异步功能?【英文标题】:Howtotestredux-thunkmiddlewareasyncfunctions?【发布时间】:2016-04-2400:25:27【问题描述】:我正在尝试使用mocha、chai和sinon测试我的asynthunk中间件功能(我的第一次!)。请考虑我的文... 查看详情