javascript - Nextjs router.beforepopstate 未触发
问题描述
//_.app.js
import React from 'react';
import App, { Container } from 'next/app';
import Layout from '../components/layout';
import Head from 'next/head';
import Router from 'next/router';
class MyApp extends App {
componentDidMount() {
// Router.events.on('routeChangeStart', (url) => {
// alert('route changes');
// });
Router.beforePopState(({ url, as, opts }) => {
alert('before pop state');
return true;
});
}
render() {
const { Component, pageProps } = this.props;
return (
<Container>
<Head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"></link>
</Head>
<Layout>
<Component {...pageProps} />
</Layout>
</Container>
);
}
}
export default MyApp;
嗨,我可以问为什么当我按下浏览器的后退和前进按钮时 router.beforepopstate 根本没有触发..?1. 我正在尝试实现一些事情,即按下后退按钮我会先做一些事情,然后再转到下一页。2.但是当我按下后退按钮时,什么都没有发生,只有当我使用 router.push 时触发了 routechangestart ......如果你们中的任何人真的能帮助我,我将非常感激..
解决方案
推荐阅读
- powerbi-embedded - PowerBi 嵌入式警报和通知
- git - 从没有子文件夹结构的 git 存储库中克隆特定文件夹
- apache-kafka - 为什么我不能运行 Kafka 的消费者?
- java - 放心。将字符串分配给 baseUri 时的 StackOverflowError
- stream - 通过流组件来自 UNIX 管道的 XML 消息
- postman - 带有 Postman 的 NTLM 显示“JSONError | Unexpected token '<' at 1:1”
- c - 向右移动向量的元素
- javascript - 使用 querySelectorAll 获取直接子级
- java - 尝试将数据从Intent迁移到ListView,但出现了一些错误
- javascript - 如何计算网页中的字符数?