[英]How to make Redux Thunk and Apollo GraphQL work together
在我的項目中, Redux Thunk用於將所有異步函數保留在動作創建器中。
現在我正在嘗試將Apollo GraphQL添加到我的項目中,除了將突變添加到我的功能組件並在那里調用它之外,一切都運行良好,它打破了redux thunk架構。
怎么解決? 我想我可以創建新的動作創建器方法並將突變傳遞給它們,但它很快就會變成樣板,而這對我來說似乎不是一個好的解決方案。
阿波羅突變不會破壞redux thunk架構。 如果您需要在突變后更新自己的Reducer,那么從then
或catch
突變中調度這些reducer的操作。 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作為緩存(存儲)的依賴性。 如果您仍希望能夠在Reducer中使用1.0樣式操作,則可以使用此鏈接https://www.npmjs.com/package/apollo-link-redux (自述文件中的示例用法)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.