javascript - 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 ...
解决方案
根据文档,由于 save 返回一个 Promise 而不是自己执行操作,因此在 save 函数中添加 await 或订阅 then ;
await DataStore.save(newUser);
或者
DataStore.save(newUser).then(...);
推荐阅读
- c# - C#异步等待未完成
- c# - 缩进
section not being recognized
- excel - Storing 1000 cells of formulas into a variable VBA
- azure-devops - Azure DevOps Default Dashboard?
- python - how handle this error that i am facing when trying to write from SQL to Kudu via Pyspark
- xml - 递归定义元素内的 XSD 元素
- java - 如何在两个不同的类中使用相同的方法(带有 Scenebuilder 的 JavaFX)?
- movesense - Movesense:如何确定 mac os x 上的 wbcmd 端口
- php - 插入表 - 用数组替换列名和值
- database - Azure WP 应用服务 - 我想克隆我的网站