我正在使用React和AWS Amplify库来注册并执行我的项目的Auth。现在,我想创建一个仅显示一次的表单(供用户向数据库中添加其他数据,例如地址),并且该表单应该在用户首次注册并登录时出现,此后再也不会出现。我一直无法弄清楚如何执行此操作,特别是将条件设置为仅在首次登录时才出现。任何帮助将非常感激。谢谢!
答案 0 :(得分:0)
您将不得不使用几个路径。
我假设您要用户存储的信息将是Cognito用户池中或单独数据库中的用户属性。我假设您将使用UserAttributes作为答案。
仅显示一次(我假设您的意思是登录时,用户可以通过其他方式访问它):
检查用户登录时是否具有该属性
showForm = async() => {
await Auth.updateUserAttributes({ // this sets the seenform attribute in the user's profile to make sure that they are not shown it again
seenForm: true
})
...
}
checkUserAttributes = async () => {
await Auth.userAttributes()
.then(async (userAttributes) => {
// check to see if the attribute field exists
!userAttributes['seenForm'] ? this.showForm() : null
}
}
async componentDidMount() {
checkUserAttributes()
}
如果属性存在,请跳过显示表单。否则,请设置属性并显示表单。
如果用户使用其他设备登录,这种方法比使用本地存储更好。