我正在寻找一种解决方案,可以让我动态地根据查询字符串呈现 markdown。目前我是在 React + Vite 中这样呈现 markdown 的:
import some other stuff...
import { useParams } from 'react-router-dom';
import { ReactComponent } from '../content/blog1.md';
const BlogPost = () => {
const params = useParams();
return (
<Base>
<PageTitle title={`title of blog ${params.blogId}`} />
<ReactComponent />
</Base>
);
};
export default BlogPost;
我希望能将
blogId
传递到导入路径中,例如:import { ReactComponent } from `../content/blog${params.blogId}.md`
确保每个/blog/*
路由都导入了正确的文件。我尝试通过延迟加载markdown来实现:
const path = `../content/blog${params.blogId}.md`;
const Markdown = React.lazy(() => import(path));
但是这会引起错误,当我记录
Markdown
时,我看到:{$$typeof: Symbol(react.lazy), _payload: {…}, _init: ƒ}
$$typeof: Symbol(react.lazy)
_init: ƒ lazyInitializer(payload)
_payload: {_status: -1, _result: ƒ}
这个看起来是空的。如何解决这个问题?