作用域報錯
錯誤示例
報錯的原因是 t 沒有作用域。
解法就是 要麼把 t 放組件裡,要麼把 depositSteps 寫成一個函數,傳 t 進去。
有 import { useTranslation } from ‘react-i18next’,但是 const { t } = useTranslation() 必須寫在 React 組件內。
現在是在 組件外面 用了 t,所以 TypeScript/ESLint 判斷不到 t 的來源,就報錯
修正後代碼:
在外部定義 depositSteps,要寫成函數並傳 t 進去:
import { useTranslation } from 'react-i18next'
import type { TFunction } from 'i18next'function getDepositSteps(t: TFunction) {return [{ label: t('bridge.initiateTransaction'), description: '' },{ label: t('bridge.finalizeTransaction'), description: '' },]
}export default function MyComponent() {const { t } = useTranslation()const depositSteps = getDepositSteps(t)}