Reach-Routers navigate () со смещением для якорных ссылок? - PullRequest
0 голосов
/ 20 апреля 2020

Есть ли способ сделать

navigate('/#about')

с reach-router, но со смещением, скажем, -16px? Я не смог ничего найти по этому поводу.

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Вы можете передать состояние ссылке следующим образом:

...

navigate(
    "/#about/",
    {
        state: { offset: "-16px" },
    }
)

...

и затем получить доступ к состоянию из целевого компонента. Вы можете передать его в любую часть этого компонента.

Подробнее об этом можно прочитать здесь: https://www.gatsbyjs.org/docs/gatsby-link/#add -состояние-в-программирование c -навигатор

0 голосов
/ 20 апреля 2020

Другим решением может быть прослушивание изменений маршрута и вызов scroll(0, -16);, если URL содержит привязку. См. https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll. Возможно, достаточно позвонить scroll после вызова navigate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...