reactjs NextJS和useRouter区域设置类型脚本错误-类型“未定义”不能用作索引类型

bmp9r5qi  于 2023-02-04  发布在  React
关注(0)|答案(1)|浏览(162)

我遇到以下打字错误,我不明白为什么-我在其他问题中看到的解决方案不起作用,因此我显然不明白这里发生了什么
类型“undefined”不能用作索引类型。
我正在使用useRouter next/router中的locale设置语言字符串,它将根据URL返回一个字符串,默认情况下,将始终从以下代码返回"en-US";

const { locale } = useRouter();
  const { pageTitle } = languageContent[locale];

如果我硬编码locale,那么它会解决这个错误

const { locale } = useRouter();
  const { pageTitle } = languageContent["en-US"];

languageContent包含我的所有语言字符串so;

const languageContent = {
    "en-US": {
        pageTitle: "Title",
    },
    "fr-FR": {
        pageTitle: "Titre",
    },
    "iw": {
        pageTitle: "כותרת",
    },
};

export default languageContent;
gajydyqb

gajydyqb1#

我解决这个问题的方法是将languageContent JSON更改为

const languageContent = {
    english: {
        pageTitle: "Title",
    },
    french: {
        pageTitle: "Titre",
    },
    hebreb: {
        pageTitle: "כותרת",
    },
};

然后我可以将其他两行更改为

const { locale } = useRouter();
  const { pageTitle } = locale === "fr-FR" ? languageContent.french : locale === "iw" ? languageContent.hebrew : languageContent.english;

相关问题