React native 在另一个获取中使用从promise返回的数据不起作用

React native 在另一个获取中使用从promise返回的数据不起作用,react-native,promise,react-redux,fetch,React Native,Promise,React Redux,Fetch,我有一个handleSubmit函数,在其中添加了两个post请求 但是,其中一个post请求依赖于从第一个post请求返回的数据。我试图通过将该数据设置为var来访问该数据,但在第二次获取中似乎无法访问该数据。不确定我的语法是否有误。。有什么想法吗 我相信这应该是有效的,但我不确定我会错在哪里。谢谢 handleSubmit=()=>{ 取('http://localhost:3000/resources', { 方法:“POST”, 标题:{ “内容类型”:“应用程序/json”, 接受:'

我有一个handleSubmit函数,在其中添加了两个post请求

但是,其中一个post请求依赖于从第一个post请求返回的数据。我试图通过将该数据设置为var来访问该数据,但在第二次获取中似乎无法访问该数据。不确定我的语法是否有误。。有什么想法吗

我相信这应该是有效的,但我不确定我会错在哪里。谢谢

handleSubmit=()=>{
取('http://localhost:3000/resources', {
方法:“POST”,
标题:{
“内容类型”:“应用程序/json”,
接受:'application/json'
},
正文:JSON.stringify({
名称:this.state.name,
description:this.state.description,
链接:this.state.link,
topic\u id:this.state.topic\u id
})
})
.then(res=>res.json())
。然后(数据=>{
this.props.addResource(数据)
var dataId=data.id;
})
返回获取('http://localhost:3000/user_resources', {
方法:“POST”,
标题:{
“内容类型”:“应用程序/json”,
接受:'application/json'
},
正文:JSON.stringify({
资源\u id:dataId,
用户标识:this.props.users.id
})
})
.then(res=>res.json())
。然后(数据=>{
this.props.addUserResource(数据)
})
this.props.navigation.goBack()
}
有两个问题:

  • 返回一些代码,然后尝试运行其他代码。您的
    this.props.navigation.goBack()
    语句将永远无法到达,因为函数在到达
    返回时结束。但这不是你的主要问题
  • fetch
    是异步的。这意味着handleSubmit函数将读取前两条语句(“fetch resources”和“return fetch user_resources”),然后在每次提取完成后,它们将运行它们的
    .then()
    函数
  • 这意味着您的
    dataId
    将未定义,您需要等待第一次提取完成并执行第二次提取

    handleSubmit=()=>{
    取('http://localhost:3000/resources', {
    方法:“POST”,
    标题:{
    “内容类型”:“应用程序/json”,
    接受:'application/json'
    },
    正文:JSON.stringify({
    名称:this.state.name,
    description:this.state.description,
    链接:this.state.link,
    topic\u id:this.state.topic\u id
    })
    })
    .then(res=>res.json())
    。然后(数据=>{
    this.props.addResource(数据)
    返回获取('http://localhost:3000/user_resources', {
    方法:“POST”,
    标题:{
    “内容类型”:“应用程序/json”,
    接受:'application/json'
    },
    正文:JSON.stringify({
    资源id:data.id,
    用户标识:this.props.users.id
    })
    })
    })
    .then(res=>res.json())
    。然后(数据=>{
    this.props.addUserResource(数据)
    })
    this.props.navigation.goBack()
    }
    
    @sofiat123你试过我写的吗?