Javascript 试图通过调用setRegisterError函数来更改错误变量的状态,但当它';s称为错误状态未更改
handleSubmit函数在单击按钮时调用Javascript 试图通过调用setRegisterError函数来更改错误变量的状态,但当它';s称为错误状态未更改,javascript,react-native,Javascript,React Native,handleSubmit函数在单击按钮时调用 handleSubmit = async (name) => { let registerResponse = await registerAPI(this.state) const resultResponse = await registerResponse.json() console.log(registerResponse) console.log(resultResponse) if (reg
handleSubmit = async (name) => {
let registerResponse = await registerAPI(this.state)
const resultResponse = await registerResponse.json()
console.log(registerResponse)
console.log(resultResponse)
if (registerResponse.status === 200) {
const userInfo = {
hasura_id: resultResponse.hasura_id,
name: name
}
let setUserResponse = await setUserAPI(userInfo)
const resultResponseSetUser = await setUserResponse.json()
console.log(setUserResponse)
console.log(resultResponseSetUser)
if (setUserResponse["affected_rows"]) {
this.setRegisterError('')
}
else {
this.setRegisterError(resultResponseSetUser.message)
}
}
else {
this.setRegisterError(resultResponse.message)
}
}
setRegisterError = error => {
// If there's an error display that, otherwise send to new screen to tell the user to verify email address and then login
this.setState({error})
if(error === '') {
this.props.navigation.navigate('PostRegister')
}
}
setRegisterError函数应更改错误状态,如果没有错误,则应导航到新屏幕
handleSubmit = async (name) => {
let registerResponse = await registerAPI(this.state)
const resultResponse = await registerResponse.json()
console.log(registerResponse)
console.log(resultResponse)
if (registerResponse.status === 200) {
const userInfo = {
hasura_id: resultResponse.hasura_id,
name: name
}
let setUserResponse = await setUserAPI(userInfo)
const resultResponseSetUser = await setUserResponse.json()
console.log(setUserResponse)
console.log(resultResponseSetUser)
if (setUserResponse["affected_rows"]) {
this.setRegisterError('')
}
else {
this.setRegisterError(resultResponseSetUser.message)
}
}
else {
this.setRegisterError(resultResponse.message)
}
}
setRegisterError = error => {
// If there's an error display that, otherwise send to new screen to tell the user to verify email address and then login
this.setState({error})
if(error === '') {
this.props.navigation.navigate('PostRegister')
}
}
可能是resultResponse或resultResponseSetUser上的消息未定义?通过将错误的默认值设置为空字符串,您可以简单地避免这种可能性。事实证明,我应该检查resultResponseSetUser[“受影响的_行”],而不是setUserResponse[“受影响的_行”],因为结果集包含受影响的_行变量