Redux ToolKit Query - сделайте несколько запросов в одном компоненте зависимыми друг от друга.

Я пытаюсь использовать RTK Query в приложении NextJS для получения нескольких объектов из API. У меня есть свои и модели. Когда компонент загружается, мне нужно получить, а затем получить соответствующие s. An App имеет currentVersionId свойство, которое ссылается на и AppVersion.

Код не работает, потому что компонент сначала отображается без маршрутизатора, он не может получить приложение и нет app.currentversionId.

У меня есть два фрагмента, которые извлекают соответствующие объекты из RESTful API.

      function AppsShow() {
  const router = useRouter()
  const { id } = router.query
  const { data: app } = useGetAppQuery(parseInt(id, 10)) // from RTK Query slice
  const currentVersion = useGetVersionQuery(app?.currentVersionId) // from RTK Query slice

  return (
    <div></div>
  )
}

Какой подходящий шаблон здесь использовать? Спасибо!

1 ответ

Использовать skip вариант :)

      function AppsShow() {
  const router = useRouter()
  const { id } = router.query
  const { data: app } = useGetAppQuery(parseInt(id, 10)) // from RTK Query slice
  const currentVersion = useGetVersionQuery(app?.currentVersionId, { skip: !app?.currentVersionId })

  return (
    <div></div>
  )
}

В качестве альтернативы вы можете использовать skipToken который также экспортируется с помощью RTK-Query (этот подход может лучше работать с TypeScript)

      function AppsShow() {
  const router = useRouter()
  const { id } = router.query
  const { data: app } = useGetAppQuery(parseInt(id, 10)) // from RTK Query slice
  const currentVersion = useGetVersionQuery(app?.currentVersionId ?? skipToken)

  return (
    <div></div>
  )
}
Другие вопросы по тегам