Gatsby: ハッシュ更新時にonRouteUpdateをトリガーしないでください

作成日 2017年10月02日  ·  3コメント  ·  ソース: gatsbyjs/gatsby

私はエクスポートonRouteUpdateからgatsby-browser.jsそうのように:

export const onRouteUpdate = ({ location, action }) => {
    if (
        window.location &&
        typeof window.location.href === 'string' &&
        window.location.href.includes('www.example.com') // make sure we're on live site
    ) {
        window.analytics.page();
    } else {
        console.log('PAGE: ', window.location.href, action, location);
    }
    return;
};

これは問題なく機能しますが、ページにアンカーリンクがある場合、そのうちの1つがクリックされるたびに起動します。

action === 'PUSH'ルートの更新でpage()を起動しようとしましたが、すべての初期ページ読み込みでイベントがブロックされます。

この追跡からアンカーリンクイベントを削除する方法はありますか?

documentation question or discussion

全てのコメント3件

こんにちは@brandonmp多分#文字が存在する場合はwindow.location.hrefチェックインしますか?

@sebastienfi彼は、ハッシュ更新(アンカーをクリックするとどうなるか)はonRouteUpdate APIをトリガーするべきではないと言っています。 これは私にはかなり合理的なようです。 ハッシュの更新は、ページを切り替えるときにのみAPIがトリガーされるように意図されている単一のページ内でのみ発生する必要があります。

@brandonmpは、ここの同じページ内のハッシュ変更をhttps://github.com/gatsbyjs/gatsby/blob/84362074df2238e6794bb6a056e0163ac1c0dfdd/packages/gatsby/cache-dir/production-app.js#L112

おそらく、関数を別のファイルに入れて、いくつかのテストを追加しますか?

いつかはわかりませんが、ルート変更時にonRouteUpdateを起動しなくなりました。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

dustinhorton picture dustinhorton  ·  3コメント

magicly picture magicly  ·  3コメント

jimfilippou picture jimfilippou  ·  3コメント

ghost picture ghost  ·  3コメント

theduke picture theduke  ·  3コメント