下一个 js:下一个身份验证提供程序 + redux 提供程序

aun*_*ntR 3 javascript reactjs redux next.js next-auth

在我的 Next js 项目中,我使用了 Next auth,其中import {Provider} from 'next-auth/client',并将 包装<Component />在 _app.js 中。

但是,同时,我想在项目中添加redux。它会import {Provider} from 'react-redux',并且还需要将<Component />_app.js包装起来。

所以在这种情况下,他们使用的是相同的Provider,我尝试过导入破坏,但它给了我一个 Synatx 错误Syntax error: ES2015 named imports do not destructure. Use another statement for destructuring after the import.。那我该怎么办?

import { Provider } from "next-auth/client";  
function MyApp({ Component, pageProps }) {
  return (
    <>
        <Provider
          options={{     
            clientMaxAge: 0,
            keepAlive: 0,
          }}
          session={pageProps.session}
        >
          <Component {...pageProps} />
        </Provider>
    </>
  );
}
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以重命名解构的导入。所以你的代码可能看起来像这样:

import { Provider } from "next-auth/client";
import { Provider as ReduxProvider } from "react-redux";

function MyApp({ Component, pageProps }) {
  return (
    <ReduxProvider {/* whatever props go here */}>
        <Provider
          options={{     
            clientMaxAge: 0,
            keepAlive: 0,
          }}
          session={pageProps.session}
        >
          <Component {...pageProps} />
        </Provider>
    </>
  );
}

Run Code Online (Sandbox Code Playgroud)

  • 组件的包装顺序重要吗?会话提供程序不应该位于 redux 提供程序之上吗? (2认同)