<Link to="/login" />
ожидает строку. Вы передаете объект, который не является приемлемым вариантом. См. Документацию Reach Router , которую Gatsby реализует как Gatsby Link.
Вы можете передать состояние для search: redirect
. Вот пример из документации по роутеру:
const NewsFeed = () => (
<div>
<Link
to="photos/123"
state={{ fromNewsFeed: true }}
/>
</div>
)