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