javascript默认替换功能在nextjs中不起作用
javascripts default replace function not working in nextjs
我有一个简单的 nextjs 应用程序,我正在尝试使用 javascript 替换函数将“-”替换为空 space“”。但是我收到的错误是 TypeError: Cannot read 属性 'replace' of undefined。这是代码
import {useRouter} from 'next/router';
import Layout from '../../components/MyLayout';
const Post = () => {
const router = useRouter();
let resString = router.query.id.replace("-", " ");
return(
<Layout>
<h1>{resString}</h1>
<p>This is the blog post content.</p>
</Layout>
);
}
export default Post;
问题是,如果查询字符串为空,则您没有 string
属性.
首先,您必须检查 属性 是否存在,然后使用 .replace()
,如下例所示:
let resString = router.query.id ? router.query.id.replace("-", " ") : "";
另请注意,您必须使用如下例中的正则表达式来实际替换所有出现的地方:
router.query.id.replace(/-/g, " ");
我有一个简单的 nextjs 应用程序,我正在尝试使用 javascript 替换函数将“-”替换为空 space“”。但是我收到的错误是 TypeError: Cannot read 属性 'replace' of undefined。这是代码
import {useRouter} from 'next/router';
import Layout from '../../components/MyLayout';
const Post = () => {
const router = useRouter();
let resString = router.query.id.replace("-", " ");
return(
<Layout>
<h1>{resString}</h1>
<p>This is the blog post content.</p>
</Layout>
);
}
export default Post;
问题是,如果查询字符串为空,则您没有 string
属性.
首先,您必须检查 属性 是否存在,然后使用 .replace()
,如下例所示:
let resString = router.query.id ? router.query.id.replace("-", " ") : "";
另请注意,您必须使用如下例中的正则表达式来实际替换所有出现的地方:
router.query.id.replace(/-/g, " ");