Javascript Auth.sign()问题:无法读取属性';用户名';
我得到了一个错误:在Cognito中尝试使用有效且已确认的用户登录时,无法读取undefined的属性“username”。即使我手动将用户名和密码放入Auth.sign(,)函数,我仍然会收到相同的错误 我正在使用iOS和React Native。我还更新并完成了Javascript Auth.sign()问题:无法读取属性';用户名';,javascript,amazon-web-services,react-native,amazon-cognito,aws-amplify,Javascript,Amazon Web Services,React Native,Amazon Cognito,Aws Amplify,我得到了一个错误:在Cognito中尝试使用有效且已确认的用户登录时,无法读取undefined的属性“username”。即使我手动将用户名和密码放入Auth.sign(,)函数,我仍然会收到相同的错误 我正在使用iOS和React Native。我还更新并完成了react原生链接amazon cognito identity js(version@3.0.15) 我怎样才能登录 import Auth from '@aws-amplify/auth' export default clas
react原生链接amazon cognito identity js
(version@3.0.15)
我怎样才能登录
import Auth from '@aws-amplify/auth'
export default class SignIn extends React.Component {
constructor(props) {
super(props)
state = {
username: ' ', //this is set from a TextInput field
password: ' ' //this is set from a TextInput field
};
}
// Sign in users with Auth
async signIn() {
const { username, password } = this.state
await Auth.signIn(username, password)
.then(user => {
this.setState({ user })
Alert.alert('Signed In Successful!')
})
.catch(err => {
console.log('Error when signing in: ', err)
Alert.alert('Error when signing in: ', err)
})
}
}
render() {
return (
<View style={styles.container}>
<TouchableOpacity
onPress={this.signIn}
style={styles.button}>
<Text> Sign In</Text>
</TouchableOpacity>
</View>
)}
}
从“@aws放大/Auth”导入身份验证
导出默认类签名扩展React.Component{
建造师(道具){
超级(道具)
状态={
用户名:“”,//这是从TextInput字段设置的
密码:“”//这是从TextInput字段设置的
};
}
//使用Auth登录用户
异步登录(){
const{username,password}=this.state
等待身份验证登录(用户名、密码)
。然后(用户=>{
this.setState({user})
Alert.Alert('登录成功!')
})
.catch(错误=>{
console.log('登录时出错:',错误)
Alert.Alert('登录时出错:',错误)
})
}
}
render(){
返回(
登录
)}
}
首先,状态应该是这样
this.state = {
username: ' ', //this is set from a TextInput field
password: ' ' //this is set from a TextInput field
};
这里有一个问题
this.setState({ user })
此代码等于:
this.setState({ user:user })
这是不正确的。因为状态中没有“用户”属性。此函数用于识别状态的属性。应该是这样的:
this.setState({ username:user })
应该是构造函数中的
this.state={…etc}
吗?是的,我先试过了。没有任何效果我很惊讶,也很惊讶手动输入用户名和密码
会出现相同的错误-您在哪里手动执行此操作?