我有一个在节点代理后面运行的站点。该站点的一部分使用 react-apollo 库的<Query>
加载数据。由于某些原因,每当我刷新页面时, PHPSESSID cookie都不会维护,并且每次都会更改。但是,如果我将RightPanel
组件放在<Query>
标记之外,则会保持会话状态。
请帮助
<Query query={GQL_CURRENT_USER}>
{({ loading, error, data }) => {
if (loading) return <div>Chargement...</div>;
if (error) return <div>Erreur...</div>;
// user not exist or problem fetching
if (data.User === null) return <div>Error while loading user.</div>
return (
<div className="main-container">
<UserContext.Provider value={{
currentUser: data.User,
currentStructure
}}>
<RightPanel />
</UserContext.Provider>
</div>
)
}}
</Query>
在RightPanel
内部,动态加载iframe
return (
<main className={classes.root}>
<div className={classes.container}>
<Switch>
<Route exact path="/">
<Redirect to="/user/suivi" />
</Route>
<Route render={() => {
const hash = window.location.hash.substr(2).split("/");
return <LegacyView path={hash}></LegacyView>
}}>
</Route>
</Switch>
</div>
</main>
)
LegacyView渲染
render() {
return <iframe ref={this.iframe} onLoad={() => this.frameLoaded()} styleName="LegacyView" src={`${LegacyView.BASE_URL}${this.state.url}`} />
}