logo@krutoo/utils

useNavigate

React hook for navigate between routes of application.

Usage

import { useNavigate } from '@krutoo/utils/react';

function App() {
  const navigate = useNavigate();

  const goToProfile = () => {
    // navigating to specific route
    navigate('/profile');
  };

  const goBack = () => {
    // navigating over history
    navigate.go(-1);
  };

  return (
    <main>
      <button onClick={goBack}>Back</button>
      <img onClick={goToProfile} src='/me/avatar.png' />
      {/* ... */}
    </main>
  );
}

Requirements

You need to wrap your root component to special RouterContext to make router specific hooks working:

import { createRoot } from 'react-dom';
import { RouterContext } from '@krutoo/utils/react';
import { BrowserRouter } from '@krutoo/utils/router';
import { App } from '#components/app';

const router = new BrowserRouter();

router.connect();

createRoot(document.querySelector('#root')).render(
  <RouterContext value={router}>
    <App />
  </RouterContext>,
);