需要对返回的 oneToOne 属性进行处理,在调用时将其转换为对象属性。
例如,假设有一个名为 User 的数据模型,其中包含一个名为 organization 的 oneToOne 属性。在查询 User 数据时,可以通过将查询方法包装在 Promise.all() 中来解决此问题。
示例代码:
import { DataStore } from 'aws-amplify';
const fetchUserData = async () => {
const user = await DataStore.query(User, someUserId);
const organizationId = user?.organization?.id;
const organizationPromise = DataStore.query(Organization, organizationId);
const userData = await Promise.all([user, organizationPromise]);
const [fetchedUser, fetchedOrganization] = userData;
return { ...fetchedUser, organization: fetchedOrganization };
};
fetchUserData().then(data => console.log(data));
在该代码中,首先查询 User 数据,并将关联的 organizationId 作为 promise 单独进行查询。之后,利用 Promise.all() 方法将两次查询的结果合并为一个数组,并最终将其作为包含完整用户信息的对象进行返回。