【发布时间】:2020-12-12 22:51:49
【问题描述】:
我需要用大量国家/地区列表填充选择输入。由于国际化,我为每种可用语言都有一个单独的 json 文件。为了不将它们全部加载到我的组件中,我只想导入与当前语言环境对应的那个。
这是我写的:
function MyComponent() {
const [countries, setCountries] = useState([]);
const { locale } = useLocale();
useEffect(() => {
import(`../../data/countries/${locale}.json`)
.then((res) => setCountries(res.countries))
.catch(_ => null);
}, []);
return <Select options={countries}/>
}
我还想过在单独的文件中编写自己的钩子:
export const useFetchJSON = (file: string) => {
const [data, setData] = useState({});
const { locale } = useLocale();
const res = require(`../data/${file}/${locale}.json`);
setData(res);
return data;
};
这些技术都不起作用。如何解决这个问题?谢谢!
【问题讨论】:
-
你遇到了什么错误?
-
尝试在catch块内添加console.log
标签: javascript json reactjs import