Я обновляю свой макет приложения с помощью json, загруженного из api в app.js (сохраненного функцией reloadLayoutsConfig), когда я хочу получить доступ к своим данным внутри приложения, все в порядке, но как я могу загрузить макет внутри моего файла layoutRedux ??
export const reloadLayoutsConfig = async (newLayoutsConfig) => {
try {
await AsyncStorage.setItem("@LayoutsConfig", JSON.stringify(newLayoutsConfig));
} catch (error) {
console.log("error save user data", error);
}
};
export const getLayoutsConfig = async () => {
try {
const LayoutsConfig = await AsyncStorage.getItem("@LayoutsConfig");
return JSON.parse(LayoutsConfig);
} catch (error) {
console.log(error);
}
};
эти две функции работают как шарм, всякий раз, когда мне нужно значение, я просто делаю это:
getLayoutsConfig().then((LayoutsConfig) => {
this.setState({ LayoutsConfig : LayoutsConfig });
});
это мой макетRedux:
import { getLayoutsConfig} from '@config'
const types = {
// LOTS OF CODE
}
const initialState = {
layout: [],
isFetching: false,
}
var layouts = [];
// OLD TYPE FROM STORED JSON FILE IN CODE
var layouts = [...LayoutsConfig];
// NEW WAY FROM LOADED JSON FILE FROM API
getLayoutsConfig().then((LayoutsConfig) => {
layouts = LayoutsConfig;
});
initialState.layout = layouts;
export const actions = {
// LOTS OF CODE
}
export const reducer = (state = initialState, action) => {
// LOTS OF CODE
}
Я упомянул мой старый и новый способ доступа к файлу json в том же коде, чтобы вы могли его проверить. в более старой версии у меня был код layout.json в моем коде, и когда мне нужно было получить доступ к файлу, я просто использовал его так:
import { LayoutsConfig } from '@config'
var layouts = [...LayoutsConfig];
в конфигурации:
export const LayoutsConfig = AppConfig.LayoutsConfig;
но теперь я называю это так:
var layouts = [];
getLayoutsConfig().then((LayoutsConfig) => {
layouts = LayoutsConfig;
});
Я получаю ошибку, как макет не загружен. что я могу сделать и как вызвать мою функцию?