温馨提示:本文翻译自stackoverflow.com,查看原文请点击:reactjs - javascripts default replace function not working in nextjs
javascript reactjs next.js

reactjs - javascripts默认替换功能在nextjs中不起作用

发布于 2020-03-31 23:19:49

我有一个简单的nextjs应用程序,我正在尝试使用javascript替换功能将“-”替换为空格“”。但是我收到错误,因为TypeError:无法读取未定义的属性“替换”。这是代码

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;

在此处输入图片说明

查看更多

提问者
sriram hegde
被浏览
18
Emanuele Scarabattoli 2020-01-31 19:29

问题是,如果查询字符串为空,则没有该string属性。

首先,您必须检查该属性是否存在,然后.replace()像下面的示例一样使用它

let resString = router.query.id ? router.query.id.replace("-", " ") : "";

还要注意,您必须使用以下示例中的正则表达式来实际替换所有出现的内容:

router.query.id.replace(/-/g, " ");