Nextjs13 app目录中在Layout获取数据并且传给Page
可以使用Next.js中提供的getInitialProps方法,在Layout组件中获取数据并将数据传递给Page组件。
首先,在Layout组件中定义一个静态方法getInitialProps,该方法可以使用Next.js提供的数据获取方法,例如fetch或axios,获取所需数据并返回一个包含数据的对象。例如:
import fetch from 'isomorphic-unfetch';
const Layout = (props) => (
<div>
<h1>My App</h1>
{props.children}
</div>
);
Layout.getInitialProps = async function() {
const res = await fetch('https://api.example.com/data');
const data = await res.json();
return { data };
};
export default Layout;
然后,在Page组件中,也可以使用getInitialProps方法来获取数据。在getInitialProps方法中,可以通过Layout.getInitialProps方法获取数据,并将其作为props传递给Page组件。例如:
const Page = (props) => (
<div>
<h2>Page</h2>
<p>{props.data}</p>
</div>
);
Page.getInitialProps = async function() {
const { data } = await Layout.getInitialProps();
return { data };
};
export default Page;
在上面的示例中,Layout组件使用getInitialProps方法获取数据,并将数据作为props传递给Page组件。Page组件也使用getInitialProps方法获取数据,并将数据作为props传递给自己的子组件。这样,就可以在Layout组件中获取数据,并将数据传递给Page组件和其他子组件。
原文地址: http://www.cveoy.top/t/topic/OwN 著作权归作者所有。请勿转载和采集!