我有这个主页
const Home: NextPage = () => {
return (<> <Link href='/2'><a>Go to page 2</a></Link> </>)
}
Home.getInitialProps = wrapper.getInitialPageProps(
({ dispatch }) =>
async () => {
await dispatch(addInitialSources('book'))
await dispatch(addCategoriesMenu('book'))
}
);
export default Home
注意调度的两个操作,这设置了整个应用程序的初始状态。
当我们转到[id]/index.tsx
时,我需要商店的初始状态与从主页请求的状态相同。
const SecondPage: NextPage = () => {
return (<> <Link href='/'><a>Go Home</a></Link> </>)
}
SecondPage.getInitialProps = wrapper.getInitialPageProps(
({ dispatch }) =>
async () => {
await dispatch(addInitialSources('book'))
await dispatch(addCategoriesMenu('book'))
}
);
export default SecondPage
是否有一种方法可以调用/设置这些调度,而不是在每个页面上调用它们?
这是pages/_app.tsx
设置(如果需要)。
import 'tailwindcss/tailwind.css';
import type { AppProps } from 'next/app'
import { wrapper } from "@store/store"
function MyApp({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />
}
export default wrapper.withRedux(MyApp)
1条答案
按热度按时间t1qtbnec1#
您可以使用getInitialProps在inside _app.tsx中调用它们,您应该注意到这将禁用自动静态优化。您在此处所做的调度将在每个页面请求上全局调度,并且在嵌套页面级别中可用。
示例代码来自https://github.com/kirill-konshin/next-redux-wrapper#app: