3

在我的 Next js 项目中,我使用了 Next auth, whichimport {Provider} from 'next-auth/client'和 wrap <Component />in _app.js。

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

所以在这种情况下,他们使用的是相同的Provider,我尝试了 import destructing,但它给了我一个 synatx error 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>
    </>
  );
}
4

1 回答 1

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>
    </>
  );
}

于 2021-02-20T02:24:15.220 回答