您可以使用Dynamic import:
useEffect(() => {
async loadData() {
const data = await import(`./${some_param}.json`);
setInitial(data);
}
loadData();
},[])
,如果有多个请求,请使用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();
},[])
,
我找到了解决方案,导入返回了Promise,以后我可以轻松地将文件中的数据设置为state,现在可以正常使用了。
import AsyncStorage from "@react-native-community/async-storage";
export const Storage {
getItem: async (key) => {
try {
let result = await AsyncStorage.getItem(key);
return JSON.parse(result);
}
catch (e) {
throw e;
}
},setItem: async (key,value) => {
try {
const item = JSON.stringify(value);
return await AsyncStorage.setItem(key,item);
} catch (e) {
throw e;
}
}
}
// usage
async function usage () {
const isLeeCool = true;
const someObject = { name: "Dave" };
const someArray = ["Lee","Is","Cool."];
try {
// Note Async storage has a method where you can set multiple values,// that'd be a better bet here (adding it to the wrapper).
await Storage.setItem("leeIsCool",leeIsCool);
await Storage.setItem("someObject",someObject);
await Storage.setItem("someArray",someArray);
} catch (e) {}
// Some point later that day...
try {
console.log(await Storage.getItem("leeIsCool"));
console.log(await Storage.getItem("someObject"));
console.log(await Storage.getItem("someArray"));
} catch (e) {}
}
本文链接:https://www.f2er.com/2740327.html