import { useState, useEffect } from 'react'; import Header from '../components/Header'; import Loading from '../components/Loading'; import CustomMarkdownEditor from '../components/MarkdownEditor';

export default function ID({ data }) { const [content, setContent] = useState(data.content || 'undefined'); const [loading, setLoading] = useState(!data);

useEffect(() => {
	if (data) setLoading(false);
}, [data]);

return (
	<>
		<Header title={data.title || 'undefined'} />
		{loading ? (
			<Loading />
		) : (
			<CustomMarkdownEditor
				content={content}
				onChange={(editor, data, value) => setContent(value)}
				rehypeRewrite={(node, index, parent) => {
					if (node.tagName === 'a' && parent && /^h[1-6]/.test(parent.tagName)) {
						parent.children = parent.children.slice(1);
					}
				}}
			/>
		)}
	</>
);

}

export const getServerSideProps = async ({ params }) => { try { const url = process.env.NEXT_PUBLIC_BLOG_ADDRESS; const id = params?.id; const res = await fetch(${url}/api/${parseInt(id)}); const json = await res.json(); const data = json?.data?.[0] || {}; return { props: { data } }; } catch (error) { console.error(error); return { props: { data: {} } }; } };

优化下面代码 import useState useEffect from react;import Header from componentsHeaderimport Loading from componentsLoadingimport CustomMarkdownEditor from componentsMarkdownEditor;export default function

原文地址: https://www.cveoy.top/t/topic/Mer 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录