我有一个奇怪的问题,组件内的动态链接在网站上的大多数地方(静态页面)都有效,但在特定的 React 组件 - Algolia InstantSearch 内无效(功能与此组件非常相似:https ://github.com/ algolia/react-instantsearch/blob/master/examples/next/components/app.js)。
我尝试过使用“常规”链接组件,即:
<Link href={'/products/[permalink]'}
as = {`/products/${permalink}`}
passHref>
....
</Link>
加上尝试使用此处概述的 useRouter 钩子:https ://mariesstarck.com/a-beginners-guide-to-dynamic-routing-in-next-js/
const router = useRouter();
const ROUTE_PRODUCT_PERMALINK = "/products/[permalink]";
const navigate = (permalink) =>
router.push({
pathname: ROUTE_PRODUCT_PERMALINK,
query: { permalink }
});
return (
<a className="group relative" onClick={() => navigate(permalink)}>
单击后,URL 会正确更改并且 getInitialProps 似乎正在运行,但当前页面并未卸载。这只发生在组件是 InstantSearch React 类的子组件时。
谢谢!!