我有一个useContext Provider嵌套在另一个useContext Provider中。我遇到了无限循环-是否有可能使用钩子嵌套上下文?
我的实现有很多代码,因此我将尝试总结一下。我的App.js具有像这样的嵌套提供程序:
<ApolloProvider client={authState.client}>
<UserProvider>
<PublicRoute path='/' component={LoginForm} exact restricted={true} />
<Layout>
<PrivateRoute path='/dashboard' component={Dashboard} exact/>
<AccountProvider>
<PrivateRoute path='/accounts' component={Accounts} exact/>
</AccountProvider>
<PrivateRoute path='/plans' component={Dashboard} exact/>
<PrivateRoute path='/activity' component={Dashboard} exact/>
<PrivateRoute path='/support' component={Dashboard} exact/>
</Layout>
</UserProvider>
</ApolloProvider>
我的AccountContext.js使用调度功能初始化状态:
const [accountState, accountDispatch] = React.useReducer(accountReducer, initialAccountState)
我的accountReducer就是这样启动的,到目前为止,只有在达到action.type大小写的情况下才记录一个动作。
export default (accountState, accountAction) => {
const [getAccount, { loadingGetAccount, errorGetAccount }] = useQuery(GET_ACCOUNT)
switch (accountAction.type) {
等...
得到错误“与上次渲染相比,渲染了更多的挂钩”。