Коришћење података добијених преко loader-а у React Router-у

У прошлом часу смо добили податке из складишта помоћу loader. Да би искористили те податке, користимо кук useLoaderData. Отворимо фајл root.jsx и додајмо кук у импорт:

routes/root.jsximport { Outlet, Link, useLoaderData } from 'react-router-dom';

У функцији Root ћемо сада добијати податке у константу products и радити са њом. Ако имамо неке производе, листа ће се приказати, ако нема, онда ћемо исписати у пасусу 'no products here ...'. У тегу nav сада користимо стандардну петљу за приказ добијених производа. Сваки елемент ће бити обавијен у компоненту Link и адреса ће бити за сваки своја (о овоме ћемо говорити касније). Дакле, ако производ нема назив, исписаће се 'Unnamed' подразумевано. Дакле, имајући у виду горе речено, сада наш код за функцију Root изгледа овако:

root.jsxfunction Root() {

  const { products } = useLoaderData();
  return (
    <div id="main">
      {products.length ? (
        <nav>
          {products.map((product) => (
            <Link key={product.id} to={`products/${product.id}`}>
              {product.name ? product.name : <i>Unnamed</i>}
            </Link>
          ))}
        </nav>
      ) : (
        <p><i>no products here ...</i></p>
      )}
      <div id="product">
        <Outlet />
      </div>
    </div>
  );
}

Ако сада поново покренемо апликацију и одемо на почетну страницу, видећемо само 'no products here ...', јер нисмо још убацили никакве производе у складиште.

Задание 1

Узмите апликацију коју сте креирали у задацима из претходних часова. Користећи материјале часа, додајте приказ података о студентима добијених преко loader-а, као што је описано у часу.