React Native Formik handleSubmit 不从函数中读取 return 值

React Native Formik handleSubmit does not read return values from function

美好的一天!

我今天使用 formik 有一个奇怪的经历, 我目前正在开发一个使用 formik 处理表单的应用程序,并将在 formik 的 onSubmit() 函数内执行 API 请求。

除了我使用 API 请求并等待它的回调之外,一切都很顺利。 onSubmit 函数中的内容会以某种方式正常工作,但 API 回调值不会 return 除非我在应用程序本身中执行 UI 更改(例如按屏幕上的随机点以触发 ui 变化)。

这是我的 formik 的 onSubmit 函数的样子

onSubmit={values => {
                      console.log("before")
                      let response = FunctionWithApiRequest(values);
                      console.log("after")
                      response.then((res) => {
                         console.log(res)
                      })
          }}

这是我的函数,里面有 api 请求

const FunctionWithApiRequest = (credentials) => {
    return fetch(`${AppConfig.HOSTNAME}/v2/auth/signup`, {
        method: 'POST',
        headers: {
            Accept: 'application/json',
            'Content-Type': 'application/json',
        },
        body: JSON.stringify(credentials)
    })
    .then((response) => response.json())
    .then((responseJson) => {
        return responseJson
    })
    .catch((error) => {
        console.log(error)
    });
}

return "responseJson" 只会在我执行 UI 更改时出现在 onsubmit 函数中(比如在我的反应本机屏幕中单击随机点)

我想知道问题是什么以及导致错误的原因。

提前感谢您的回复。

也许你可以在一个单独的函数中使用 await 和 async.For instance

async handleSubmit(){
let {credentials} = this.state
let data = await this.props.FunctionWithApiRequest(credentials)
this.setState({returnedData: data})
}

现在在你的 textInput/formik

onSubmit={()=>this.handleSubmit()}

我假设你已经在 actions.file 中发出请求 api 函数,而不是在同一个 file.Am 中,我对吗?所以我所做的只是在 [=22 之前等待=] 表示只有当你有响应时才会执行下一行 returned.Comment 如果你有任何问题。

当您启用挖掘模式时,这是由运输捆绑器引起的。