Javascript 试图通过调用setRegisterError函数来更改错误变量的状态,但当它';s称为错误状态未更改

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函数在单击按钮时调用

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[“受影响的_行”],因为结果集包含受影响的_行变量