Dar*_*ren 5 javascript reactjs gatsby
我目前正在使用React和GatsbyJS构建一个网站,并尝试window.history.back(-1);在前一页属于同一域的情况下有条件地添加导航。
一个例子是
navigateBack = () => {
if (window !== undefined) {
window.history.back(-1);
}
};
Run Code Online (Sandbox Code Playgroud)
请注意,if (window !== undefined)允许window在没有服务器端渲染的情况下使用。
如何在运行此功能之前检查上一页。
例如,用户是从我想要使用的外部链接导航的navigate('/stories/'),否则如果用户来自内部页面,即'/stories/2/'我希望他们使用window.history.back(-1);
Gatsby 有一个api可以告诉你以前的位置。也许您可以将它与document.referrer建议的 @ATT 一起使用,以检查以前的 url 是否来自同一域。
// gatsby-browser.js
exports.onRouteUpdate = ({ location, prevLocation }) => {
if (prevLocation || document.referrer.includes(SITE_NAME)) {
// same domain
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您想在 React 组件中获得以前的位置信息,请查看其他 gatsby 问题的答案。
旁注:如果没有引荐来源网址,则为空白 ( )(网站省略引荐来源网址,或document.referrer直接"")nullundefined
| 归档时间: |
|
| 查看次数: |
5779 次 |
| 最近记录: |