好问题。我想您正在基本组件文件中设置网络层。您可以创建一个包装 Relay.injectNetworkLayer 调用的函数,以便在需要时更新 Auth 标头。
加载应用程序时,您可以执行以下操作:
export function setNetworkLayer() {
return new Promise((resolve, reject) => {
var options = {};
if (localStorage.authToken) {
options.headers = {
Authorization: 'Basic ' + localStorage.authToken
}
}
else {
options.headers = {};
}
Relay.injectNetworkLayer(
new Relay.DefaultNetworkLayer('http://example.com/graphql', options)
);
resolve(options);
});
})
}
如果你想更新网络层,你会做这样的事情:
loginUser().then((res) => {
localStorage.authToken = res.token;
setNetworkLayer();
return;
})