useContext钩子替换Redux / Thunk的正确用法是什么

时间:2019-06-05 12:08:37

标签: reactjs redux-thunk react-hooks

我不确定如何使用新的React功能useContext挂钩异步调用外部资源。 我想用useContext替换Redux / Thunk的用法。 什么是最佳做法。我写了一些代码来做到这一点。 有人可以查看我的代码并给我建议吗。

https://codesandbox.io/s/usecontext-with-side-effect-example-uuyxw

context-auth.js 上下文提供程序实现,reducer,initialState,模拟API调用(AuthUser)

login.js useContext的用法

代码有效。 但这是最佳做法吗?

1 个答案:

答案 0 :(得分:0)

我不确定这是否有帮助,但是我已经使用上下文和React Router实现了Auth和Private Routes。

您可以在Code ReviewGist中看到它。

我也有一个在CodeSandbox中使用useContext的示例。这是非常基本的,但我认为更容易理解。

useContext替换了YourContext.Consumer,而且,您可能不需要使用HOC来使用YourContext.Consumer

现在有了钩子,您只需要YourContext.Provider,导出YourContext并使用let contextValue = useContext(YourContext)从上下文中获取值