reactjs 下一次从9.1.1升级到9.5.3以及从next-transpile-modules 3.3.0升级到7.3.0后,Router.push行为发生变化

fcg9iug3  于 2022-12-03  发布在  React
关注(0)|答案(1)|浏览(134)

我在我的Web应用程序中碰到了一些库,我注意到其中一个依赖于使用Router.push()进行重定向的页面在升级后停止了工作。

  • 下一步:9.1.1到9.5.3
  • 下一个传输模块3.3.0至7.3.0

场景是:

  • /path/[id]加载,用户与之交互,按“下一步”
  • 路由器.push被称为更改页面的id。
  • 通常为id + n页面加载的页面,但现在发生的是URL更改,但页面不会以任何形式重新呈现

我已经降级了两个库并重新测试了,我确信这就是导致它的变化。我查找了迁移指南和9.5.0版本中的问题,但没有找到任何相关的东西。
知道是什么改变了吗
这是推送调用,这是一个类组件:

import Router from 'next/router';
...
Router.push({
  pathname: `/path/${newId}`,
  query: {
  // different params
  },
  shallow: false,
});

短暂性脑缺血

6ju8rftf

6ju8rftf1#

这篇文章帮助我解决了https://github.com/vercel/next.js/issues/2819问题。我只需要使组件唯一,以确保componentDidMount再次执行。不知道为什么在这些特定的版本更改后会出现问题,因为这篇文章使用的是旧得多的Next版本,但它已经修复。将此问题留给其他人处理这个非常特定的版本问题。
修复:在页面/文件夹上的相应文件,例如:pages/path/[id].js
<Component key={any unique key}/>

相关问题