小编T-G*_*T-G的帖子

当页面刷新或手动导航时,React 不会在桌面 Safari 或任何移动(仅限 iOS 测试)浏览器上呈现

这似乎是其他一些的重复。但没有任何解决方案对我有用。

通过链接导航工作正常。刷新页面或手动导航仅适用于桌面(chrome 和 firefox,不适用于 Safari)。在桌面 safari 和所有 iOS 浏览器上,它只是在浏览器中显示整个 JSON 对象,似乎并不提供静态文件。

我试过 Router、BrowserRouter 和 HashRouter。唯一有效的是HashRouter。但是,我不想在 url 中使用哈希值。

我没有收到任何错误,而且我已经全部记录了控制台。当我在 getProducts 操作创建器和服务器“/products”路由中放置日志时,Safari 不会在浏览器中显示操作创建器控制台日志。但是,heroku 日志显示 path="/products" 正在被命中,而不是 path="/static/css/main.etc.," 或 path="/static/js/main.etc.," 文件.

我研究过和/或尝试过的事情:

手动刷新或写入时,React-router url 不起作用

网页无法在 iOS 浏览器或桌面 Safari 中正确呈现

https://github.com/ReactTraining/react-router/issues/4727

如何从 react-router 中的 url 中删除哈希

React Routing 在本地机器上工作,但在 Heroku 上不工作

https://github.com/ReactTraining/react-router/issues/4671

这是一个精简的样本。注意:我同时使用来代理我的请求。

// 客户端/index.js

import React from 'react'
import ReactDOM from 'react-dom'
import './styles/index.css';
import App from './App'
import registerServiceWorker from './registerServiceWorker'
import { Router } from 'react-router-dom'
import { Provider } …
Run Code Online (Sandbox Code Playgroud)

javascript heroku react-redux react-router-dom

5
推荐指数
0
解决办法
3608
查看次数

React Router v6.0.0-alpha.5 历史记录道具删除 - 在反应上下文之外导航

根据react router最新的v6.0.0-alpha.5版本,history prop已被删除: https: //github.com/ReactTraining/react-router/releases/tag/v6.0.0-alpha.5

删除了 <Router History> 属性,并将设置/拆除侦听器 (history.listen) 的责任移至包装器组件(<BrowserRouter>、<HashRouter> 等)中。<Router> 现在是一个受控组件,它只是为应用程序的其余部分设置上下文。

使用钩子在反应上下文中导航很简单useNavigate

但是,删除历史记录会如何影响以编程方式在反应上下文之外进行导航?例如,当我们不再可以传递历史对象时,我们如何保持历史同步,以便从 redux 或 axios/http 拦截器等内部导航?当前 V5 实现: https: //reacttraining.com/react-router/web/api/Router

或者,从 v6 开始,目标是仅依赖于 React 组件内的导航?

javascript reactjs react-router react-router-dom

5
推荐指数
1
解决办法
1850
查看次数