首页 > 解决方案 > AWS Datastore 未将用户保存在 Android 上的数据库中

问题描述

我有一个代码可以将用户保存在我的个人资料屏幕上的数据库中,但该代码在 iOS 上运行良好,但在 android 上它会抛出一个“可能未处理的 Promise Rejection”和“TypeError:Symbol.asyncIterator 未定义”。请问如何解决Android上的问题以便它可以保存到数据库?我正在使用 React Native。这是代码片段:

import {Auth, DataStore} from 'aws-amplify';

const ProfileScreen = () => {

    const [name, setName] = useState('');
    const [bio, setBio] = useState('');
    const [gender, setGender] = useState();
    const [lookingfor, setLookingfor] = useState();

    const isValid = () => {
        return name && bio && gender && lookingfor;
    };

    const save = () => {
        if(!isValid()) {
            console.warn('Not valid');
            return;
        }

        const newUser = new User({
            name,
            bio,
            gender,
            lookingfor,
            image: 'https://notjustdev-dummy.s3.us-east-2.amazonaws.com/avatars/elon.png',
        });

        DataStore.save(newUser);

    };
    return ...

标签: javascriptreact-nativeamazon-dynamodbreact-native-androidaws-amplify

解决方案


根据文档,由于 save 返回一个 Promise 而不是自己执行操作,因此在 save 函数中添加 await 或订阅 then ;

await DataStore.save(newUser); 

或者

DataStore.save(newUser).then(...);

推荐阅读