Fre*_*e09 3 javascript reactjs bodymovin lottie
我正在使用 Adobe After Effects 和 React Lottie 创建动画,并且我有许多由 Bodymovin 扩展生成的 json 文件。我以这种方式导入文件:
import * as initial from './white_bird.json';
import * as hoverOn from './white_bird_hover_on.json';
import * as hoverOff from './white_bird_hover_off.json';
Run Code Online (Sandbox Code Playgroud)
但是,当我有 6 个其他组件时,它们看起来相同,但仅在导入的文件上彼此不同。我怎样才能把这些行写在上面,如下所示:
const data = {
initial: import * as initial(`./${some_param}.json`),
};
Run Code Online (Sandbox Code Playgroud)
请注意,我必须像“* as”一样导入它,以另一种方式这是行不通的
您可以使用动态导入:
useEffect(() => {
async loadData() {
const data = await import(`./${some_param}.json`);
setInitial(data);
}
loadData();
}, [])
Run Code Online (Sandbox Code Playgroud)
Promise.all如果您有多个请求,请使用:
useEffect(() => {
async loadData() {
const [initalData, hoverOnData, hoverOffData] = await Promise.all([
import(`./${bird}.json`),
import(`./${bird}_hover_on.json`),
import(`./${bird}_hover_off.json`)
]);
setInitial(initalData);
setHoverOn(hoverOnData);
setHoverOff(hoverOffData);
}
loadData();
}, [])
Run Code Online (Sandbox Code Playgroud)