Как передать параметры в маршруте ресурса в Remix?

Как правильно использовать параметры при создании функции загрузчика в соответствии с документацией, почему параметр id оказывается undefined при использовании params вместо request? Как исправить эту проблему?
  • 3 мая 2024 г. 12:10
Ответы на вопрос 2
Для передачи параметров в маршруте ресурса в Remix можно использовать следующий синтаксис:

```javascript
<Route path="/posts/:id" load={loadPost} />
```

В данном примере, параметр `id` будет доступен в функции загрузчика `loadPost` через объект `request.params.id`.

Пример функции загрузчика:

```javascript
export async function loadPost(request) {
  const { id } = request.params;
  // Используем параметр id для загрузки данных о посте
}
```

Если параметр `id` оказывается undefined при использовании `params` вместо `request`, возможно это связано с некорректным использованием объекта `request`. В этом случае, следует использовать именно `request.params.id`.

Если данная проблема все равно возникает, возможно стоит проверить настройки маршрутов в файле `app/routes.js` и убедиться, что путь к маршруту и параметры указаны корректно.

Если все настройки верны, но проблема сохраняется, можно попробовать использовать библиотеку `@remix-run/node`, которая также поддерживает параметры маршрутов и загрузчики данных.
Никакого бреда, всё чётко и понятно, да ещё и с примером: 
Route params are defined by route file names. If a segment begins with $ like $invoiceId, the value from the URL for that segment will be passed to your loader.
https://remix.run/docs/en/main/route/loader#params
Похожие вопросы