我有一个使用create-react-app的单页应用程序,该应用程序与Firebase托管一起部署。刷新适用于我的/
主页路由,但是当我处于/product-details
路由并刷新时,它将返回一个空白屏幕。这仅在移动设备上发生。对于桌面浏览器来说,它工作得很好。
为什么我只能在移动设备而不是台式机上看到它?
一些注意事项:
A cookie associated with a cross-site resource at http://google.com/ was set without the
SameSite attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with
SameSite = None and
安全. You can review cookies in developer tools under Application>Storage>Cookies and see more details at
react-router ^5.1.2
和react-router-dom ^5.1.2
这是我的路线:
<BrowserRouter>
{shouldShowNav && <SideNav />}
{!isLoading ? (
<div
className={containerClassName}>
<Route exact path='/login' component={LoginPage} />
{!userProfile.isAdmin && (
<PrivateRoute
exact
path='/'
component={VendorDashboard}
isLoggedIn={isAuthenticated}></PrivateRoute>
)}
{userProfile.isAdmin && (
<PrivateRoute
exact
path='/'
component={ProductManagementPage}
isLoggedIn={isAuthenticated}
/>
)}
<PrivateRoute
exact
path='/new-vendor'
component={NewVendor}
isLoggedIn={isAuthenticated}
/>
<PrivateRoute
exact
path='/product-details'
component={ProductEditor}
isLoggedIn={isAuthenticated}
/>
</div>
) : (
<div> Loading ... </div>
)}
</BrowserRouter>
答案 0 :(得分:0)
这与我的路线设置方式无关。这是我用来将状态保存到sessionStorage
中的事件监听器。我使用的是beforeunload
,它在移动浏览器中不可用,并说明了为什么刷新仅在桌面上有效。我将其替换为unload
。
此处的更多信息:Session Storage not being retrieved on mobile browser