我目前正在尝试链接API请求以使用React Native检索用户信息。我遇到的问题是第一个获取请求提供了我正在寻找的响应,但链接的请求挂起。
我已经能够通过在我的机器上运行API来缩小范围,这就是问题所在。在发出第一个请求时,配置对象中的标头将毫无问题地传递。发出第二个请求时,会传递X-Tenant-Name
标头,但由于某种原因,Authorization
标头在进程中丢失,因此请求失败。
这是发出请求的函数:
async componentWillMount() {
const { authToken, selectedUser, tenant } = this.props;
const config = {
method: 'GET',
headers: {
'X-Tenant-Name': tenant,
'Authorization': 'Bearer ' + authToken
}
}
await fetch(URL + '/users/' + selectedUser.id, config)
.then(response => response.json())
.then(response => {
this.setState({ user: response.data });
const children = response.data.relationships.following_tips.data;
if (children.length) {
for (let i = 0; i < children.length; i++) {
fetch(URL + '/tips/' + children[i].id, config)
.then(response => response.json())
.then(response => console.log(response))
.done();
}
}
})
.done();
}
有什么想法吗?
答案 0 :(得分:0)
我认为您的问题是由于您忘记将config
传递给第二个fetch
而引起的。试试这个:
async componentWillMount() {
const { authToken, selectedUser, tenant } = this.props;
const config = {
method: 'GET',
headers: {
'X-Tenant-Name': tenant,
'Authorization': 'Bearer ' + authToken
}
}
await fetch(URL + '/users/' + selectedUser.id, config)
.then(response => response.json())
.then(response => {
this.setState({ user: response.data });
const children = response.data.relationships.following_tips.data;
if (children.length) {
for (let i = 0; i < children.length; i++) {
fetch(URL + '/tips/' + children[i].id, config) //Add config to this fetch too.
.then(response => response.json())
.then(response => console.log(response))
.done();
}
}
})
.done();
}