在history.push()之后组件没有被渲染

2023-11-27

单击按钮后,我将通过执行以下操作更改 URLhistory.push()

import createHistory from 'history/createBrowserHistory'  
const history = createHistory()  
.  
. some code  
.  
history.push(`/share/${objectId}`)

并希望中提到的组件Route因为该 URL 会呈现,但没有发生。不过,刷新后该组件将按预期呈现。但我不明白为什么 URL 更改后它不会立即呈现。我尝试过将组件包裹在里面withRouter.

import React, {Component} from 'react'  
import {BrowserRouter, Router, Route, Switch, withRouter} from 'react-router-dom'  
import createHistory from 'history/createBrowserHistory'  

import Home from './pages/home'  
import ViewFile from './pages/view-file'  

const history = createHistory()

class App extends Component {
    constructor(props) {
      super(props)
    }

      render() {
      return (
          <BrowserRouter>
              <Switch>
                  <Route exact path={'/'} component={Home}/>
                  <Route path={'/share/:id'} component={withRouter(ViewFile)}/>
              </Switch>
          </BrowserRouter>
      )
  }
}

export default App 

以及路过的history in Router我认为与使用相同BrowserRouter.

import React, {Component} from 'react'  
import {BrowserRouter, Router, Route, Switch, withRouter} from 'react-router-dom'  
import createHistory from 'history/createBrowserHistory'  

import Home from './pages/home'  
import ViewFile from './pages/view-file'  

const history = createHistory()

class App extends Component {
    constructor(props) {
      super(props)
    }

      render() {
      return (
          <Router history={history}>
              <Switch>
                  <Route exact path={'/'} component={Home}/>
                  <Route path={'/share/:id'} component={ViewFile}/>
              </Switch>
          </Router>
      )
  }
}

export default App 

但没有得到任何运气。谁能解释为什么会发生这种情况?
P.S 我浏览了答案here但他们没有帮助


这可能会对某人有所帮助。确保history软件包版本兼容react-router-dom.

这个组合didn't为我工作:

历史:5.0.0使用反应路由器 dom:5.2.0

这个组合did:

历史:4.10.1与反应路由器 DOM5.2.0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在history.push()之后组件没有被渲染 的相关文章

随机推荐

  • python 本地模块

    我有几个项目目录 并且想要特定于它们的库 模块 例如 我可能有这样的目录结构 myproject mymodules init py myfunctions py myreports mycode py 假设有一个函数叫做add in my
  • 如何使用 XmlPullParser 解析 RSS 提要?

    我想解析 RSS 提要 我的问题是如何解析之间的所有标签
  • Python中跨平台获取用户配置主目录的方法?

    我的程序需要存储一些配置文件 主要操作系统似乎都有一个指定的位置来放置它们 例如 在 Freedesktop org 兼容系统上 它将是存储在 XDG CONFIG HOME环境变量 是否有方法 或库 可以跨主要操作系统获取此配置主目录 W
  • 如何从 int 正确设置 UIColor?

    我正在尝试设置textColor of a UITextView通过给它赋值 在该计划的早期我有 textView textColor 0x000000 但后来 当我有 textView textColor 0x888888 弹出致命错误
  • Springboot 日志配置

    我尝试配置我的 springboot 应用程序以登录一个文件一天 所以我配置我的 logback xml 就像这样
  • jquery 更改在动态值更改的情况下不起作用

    在 jQuery 中我如何跟踪onchange如果文本框的值因其他事件而动态变化 则发生事件 我尝试过这个但它不起作用 txtbox change function alert change keyup不涵盖所有自然情况 两种情况当chan
  • “adb screencap /sdcard/screenshot.raw”生成什么格式? (没有“-p”标志)

    我正在寻找使用adb screencap实用程序没有 p旗帜 我想象输出将以原始格式转储 但看起来并非如此 我尝试打开原始图像文件Pillow python 库导致 adb pull sdcard screenshot raw screen
  • 页面加载时将光标更改为忙

    我了解如何在页面进行和 ajax 调用时使用 javascript 将光标更改为忙 但是我有一个不使用ajax的页面 它使用回发来重新加载页面 然而 加载的数据量相当大 并且需要几秒钟的时间 在此期间用户仍然可以点击该页面 我想将光标转到
  • `script` 和 `link as="script"` 标签有什么区别?

    除了加载脚本的标准方法之外 我见过人们这样做 有什么区别吗 注 还有一个类似的使用 link 和 script 标签引用 JavaScript 源代码有什么区别 问题询问关于 这是不同的 If that link标签有rel preload
  • 如何禁用谷歌浏览器自动更新? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 有谁知道如何禁用 Google Chrome 自动更新本身 它会导致我的网络应用程序总是发生变化 我已尝试使用此页面上提供的或如中所述的 Google Update ADM 模板这篇
  • 将MaterialToolbar的标题更改为center

    我正在使用导航组件和材质工具栏 我刚刚使用材质工具栏设置了导航组件 通过这样做 每当片段更改显示的后退按钮时 导航组件就会自动更改材质工具栏的标题 问题是我只想将标题重力更改为中心而不删除那些导航组件工具栏支持 我怎样才能做到这一点 注意
  • 如何配置 rspec 以使用 spork 显示输出?

    我运行了 spork 来加速我的测试 但是当我运行它们时没有输出 是否有我需要修改的配置 刚刚也遇到了这个问题 在 spork 1 0 0rc4 和 rspec 2 14 1 rspec core 2 14 8 上运行 据我所知 问题在于以
  • 时间戳和日期时间

    我有一个包含两列的表 第一列是 当前日期 时间戳 另一列是 日期返回 日期时间列 我需要从天数中获取当前日期和日期返回之间的差异 这可能吗 不 这是不可能的 与流行的看法 以及名称本身 相反 timestamp column 实际上与时间无
  • “当前不会命中断点” - 我无法添加 .pdb 文件

    我在 Visual Studio 中有一个包含一个项目的解决方案2013 视觉C 但是当我构建它时debug模式 那么运行它debug我得到的模式 当前不会命中断点 尚未加载任何符号 对于本文档 我试图以类似于人们建议的 Visual C
  • Linux:有没有办法在不停止/暂停进程(SIGSTOP)的情况下使用 ptrace?

    我正在尝试将程序从 Windows 移植到 Linux 当我发现没有 真实 的时候 我遇到了一个问题ReadProcessMemoryLinux 上的对应项 我寻找替代方案 然后发现ptrace 一个强大的进程调试器 我快速用 C 编写了两
  • 在双精度和字节数组之间进行转换,以便通过 ZigBee API 传输?

    我正在尝试获取两个双精度数 GPS 坐标 并通过 ZigBee API 将它们发送到另一个 ZigBee 接收器单元 但我不知道如何将双精度数分解为字节数组 然后将它们重新组合回原始形式一旦他们被转移 基本上 我需要将每个双精度数转换为八个
  • 使用 PageView 时的 FadeTransition

    我试图做一些应该很简单的事情 但事实证明这非常困难 当用户滚动到 flutter web 上的下一页时 我试图进行淡入淡出过渡 我尝试使用在 stackoverflow 上找到的许多代码 但没有任何效果 我最后尝试的是以下代码 它给了我一个
  • 如何缓存bust sw-toolbox?

    我一直在玩弄服务人员和 sw toolbox 两者都是很好的方法 但似乎都有其弱点 我的项目开始时使用 Google 的 Service Worker 方法 link 我的看法是 您必须手动更新缓存清除的版本号 我也可能是错的 但我不认为用
  • 如何在不同服务器上的两个不同数据库之间复制或导入 Oracle 模式?

    从一个用户 实例 服务器复制架构的最佳方法是什么 jdbc oracle thin deeb02 1535 DH user pov 到另一个用户 实例 服务器 jdbc oracle thin 123 456 789 123 1523 or
  • 在history.push()之后组件没有被渲染

    单击按钮后 我将通过执行以下操作更改 URLhistory push import createHistory from history createBrowserHistory const history createHistory so