首页 > 解决方案 > 有没有办法阻止 Gatsby 在单击没有 href 的元素时刷新页面?

问题描述

标签: javascriptgatsby

解决方案


据我所见,Gatsby 使用 jsx,它可能是从 babel 编译而来的(这意味着网站是使用虚拟 dom 动态设置的,即 React)

有两种方法。将 JS 注入到 Web App 运行或在 React 反编译虚拟 dom 之前在内部解决它

您想要做的是按 Id 抓取按钮并覆盖其默认行为

export const onPreRouteUpdate = ({ location, prevLocation }) => {
      if (location.pathname === 'donate' && prevLocation === 'donate') {
        return;
      }
    }

此脚本[t 肯定会尝试将您引导到“捐赠”页面

您可能希望将页面路由到其当前位置

这是一篇关于如何 在 gatsby 中路由到当前页面的文章

您可能想要做的另一件事是完全删除事件侦听器,这是我为删除窗口 Keypress 事件所做的示例

为您的代码调整它

 return () => { window.removeEventListener('keydown', onKeyDown) }

推荐阅读