React native 在另一个获取中使用从promise返回的数据不起作用
我有一个handleSubmit函数,在其中添加了两个post请求 但是,其中一个post请求依赖于从第一个post请求返回的数据。我试图通过将该数据设置为var来访问该数据,但在第二次获取中似乎无法访问该数据。不确定我的语法是否有误。。有什么想法吗 我相信这应该是有效的,但我不确定我会错在哪里。谢谢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=()=>{
取('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你试过我写的吗?