在React Native中全局存储用户定义的数据以在任何文件中使用

时间:2018-08-09 17:27:15

标签: javascript react-native promise async-await

说我有一个打开屏幕,为了简单起见,用户选择了一个“主题”。我将他们的选择保存到AsyncStorage。

async setTheme(theme) {
    await AsyncStorage.setItem('theme', theme)
        .then(() => {
            // Navigate to next screen
        })
}

我想在无状态文件中访问此文件以指定默认颜色。我无法像下面那样导出承诺链(即Colors const)内的任何内容:

const ThemeColors = {
    ThemeOne: {
        main: '#1F78B7',
        secondary: '#F07634'
    },
    ThemeTwo: {
        main: '#E11D2D',
        secondary: '#FEED67'
    }
}

AsyncStorage.getItem('theme').then((theme) => {
    export const Colors = ThemeColors[theme];
});

我也无法访问Promise对象之外的任何内容,自然可以对Async进行操作:

const theme = AsyncStorage.getItem('theme').then((result) => {
    const Theme = result; // Returns undefined
    return result; // Returns the promise object instead of the value
});

我想念一些简单的东西吗?在AsyncStorage之外,是否有解决方案可用于全局存储一段用户定义的信息并在不作为道具传递的情况下随时访问它?我可能对异步/承诺还不够熟悉。任何帮助表示赞赏!

0 个答案:

没有答案