如何将 _app.js 包装在多个提供程序中?

Posted

技术标签:

【中文标题】如何将 _app.js 包装在多个提供程序中?【英文标题】:How to wrap _app.js within multiple providers? 【发布时间】:2021-04-18 14:39:57 【问题描述】:

我想知道这是否可能以及如何将我的***页面 _app.js 包装在 Redux 提供程序中,考虑到我已经使用 Next-auth 提供程序将其包装,例如:

import React from "react"
import  Provider  from 'next-auth/client'
import '../public/global.scss'

export default function App ( Component, pageProps ) 
  return (
      <Provider
        options=
          clientMaxAge: 0,
          keepAlive: 5 * 60
        
        session=pageProps.session >
        <Component ...pageProps />
      </Provider>
  )

问题是当我尝试添加 Redux &lt;Provider .. 时,它说 Provider 已经定义。

【问题讨论】:

您是否尝试过使用 Redux 提供程序包装返回的内容,就像使用 next-auth 提供程序一样? 是的,但它说 Provider 已经定义 谢谢,我试试看 【参考方案1】:

您可以使用 as 重命名名为 import 的 redux 提供程序。

import React from "react"
import  Provider as NextAuthProvider  from 'next-auth/client'
import  Provider as ReduxProvider  from 'react-redux'
import '../public/global.scss'

export default function App ( Component, pageProps ) 
    return (
        <ReduxProvider>
            <NextAuthProvider
                options=
                    clientMaxAge: 0,
                    keepAlive: 5 * 60
                
                session=pageProps.session >
                <Component ...pageProps />
            </NextAuthProvider>
        </ReduxProvider>
    )

【讨论】:

以上是关于如何将 _app.js 包装在多个提供程序中?的主要内容,如果未能解决你的问题,请参考以下文章

00071_基本类型包装类

如何使用 Next.js 仅将一些页面包装在 Context Provider 中?

Swift 3:如何将内容包装在具有多个标签的 tableviewcell 中?

如何将某些属性从包装值“提升”到包装器?

如何将所选元素的多个实例包装到新的 <div> 中

下一个.js。将全球供应商放在哪里?