nextjs: 페이지 내 레이아웃 이벤트 듣기
예시:
MyLayout 레이아웃의 AppBar에 인쇄 버튼이 있을 수 있습니다.
그런 다음 각 페이지는 setCallable({ print: () => alert('print me') })을 호출합니다.
/* _app.tsx */
import "../styles/globals.css";
import type { AppProps } from "next/app";
import MyLayout from "../components/MyLayout";
import { useState } from "react";
function MyApp({ Component, pageProps }: AppProps) {
const [callable, setCallable] = useState();
return (
<MyLayout callable={callable}>
<Component {...pageProps} setCallable={setCallable} />
</MyLayout>
);
}
export default MyApp;
/* MyLayout.tsx */
export default function MyLayout({ children, callable }) {
return (
<>
<AppBar position="fixed" open={open}>
<Toolbar>
{callable?.print && (
<IconButton onClick={callable.print}>
<Print />
</IconButton>
)}
{/*Other buttons to call other callbacks can be added here*/}
</Toolbar>
</AppBar>
<main>{children}</main>
</>
);
}
/* MyPage.tsx */
export default function MyPage(props: any) {
useEffect(() => {
props.setCallable?.({
print: () => alert("print the current page"),
/* Other callbacks can be added here */
});
}, []);
}
Reference
이 문제에 관하여(nextjs: 페이지 내 레이아웃 이벤트 듣기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/moezguedri/nextjs-listen-to-layout-events-within-pages-3hlp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)