数组返回类型上的自定义React Hook打字稿错误

问题描述

我创建了一个非常简单的自定义钩子:


export function useI18n() : [ string,dispatch<SetStateAction<string>> ] {
  const [ language,setLanguage ] = useState<string>(i18n.language)

  useEffect(() => {
    i18n.changeLanguage(language)
  },[ language ])

  return [ language,setLanguage ];
}

在我的组件中,我像这样使用这个钩子:

const [language,setLanguage] = useI18n();

我正在使用react-scripts,当我做npm start时,我得到以下信息:

Failed to compile.

./src/config/i18n.ts
  Line 0:  Parsing error: Cannot read property 'map' of undefined

但是,如果我将钩子设置为返回对象而不是数组,则不会发生此错误

export function useI18n() : { language: string,setLanguage: dispatch<SetStateAction<string>> } {
  const [ language,[ language ])

  return { language,setLanguage };

在这种情况下,我这样称呼它:

const { language,setLanguage } = useI18n();

有人知道为什么返回数组会导致编译失败吗?也许我在犯一些奇怪的错误。 预先感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...