【问题标题】:React router does not change view, but url is changed - App is load inside iframeReact 路由器不会更改视图,但会更改 url - 应用程序在 iframe 中加载
【发布时间】:2020-01-30 23:35:42
【问题描述】:

我在 iframe 中加载了 react 应用程序。 这是路由部分:

<Router>
    <Switch>
      <Route path="/" component={View} />
      <Route path="/create" component={CreateNewItemPage} />
    </Switch>
</Router>

我使用 View.js 中的链接进行导航:

<Button
     variant="contained"
     color="primary"
     component={Link} 
     to="/create">
 Create
</Button>

问题是点击 url 改变了但视图没有改变。 也许问题是它在 iframe 中不确定。我第一次遇到这个问题。 尝试了 Route 的“exact”属性,但同样的问题。 浏览器控制台也没有任何错误。

【问题讨论】:

  • 请将您的按钮包裹在 Link 组件之间,可能对您有所帮助
  • 我也试过了,但是一样。 @sinafarhadi
  • 它在反应原生?
  • 不,不反应原生
  • 你也可以分享你的组件代码吗?我认为您没有返回 jsx 或没有导入 React

标签: reactjs react-router


【解决方案1】:

原因可能是缺少向路由器传递历史。 Check Router for more information

文档中的示例:

import React from "react";
import ReactDOM from "react-dom";
import { createBrowserHistory } from "history";

const customHistory = createBrowserHistory();

ReactDOM.render(<Router history={customHistory} />, node);

你可以试试&lt;BrowserRouter&gt;。 BrowserRouter 只不过是带有 HTML5 历史 API 的路由器。 Check BrowserRouter for more info

希望它能解决您的问题。祝你有美好的一天。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-07
    • 2017-12-15
    • 2018-02-20
    • 2022-01-10
    • 2022-10-26
    • 2018-07-25
    • 1970-01-01
    相关资源
    最近更新 更多