вызов к api, и есть другая компонента которой нужны тоже эти данные и обычно в ней тоже пишут запрос к api и данные если что берутся из кэша, без повторного запроса. А что делать если для запроса к api мне нужны некоторые данные к запросу которая которая одна компонента получает из формы своей, а в другой компоненте нет доступа к этой форме и для запроса она взять данные не может?
вы редакс будете использовать ??
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'; export const api = createApi({ reducerPath: 'api', baseQuery: fetchBaseQuery({ baseUrl: 'https://api.example.com' }), endpoints: (builder) => ({ getData: builder.query({ query: (data) => ({ url: /data/${data.id} }), }), }), }); export const { useGetDataQuery } = api;
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'; export const api = createApi({ reducerPath: 'api', baseQuery: fetchBaseQuery({ baseUrl: 'https://api.example.com' }), endpoints: (builder) => ({ getData: builder.query({ query: (data) => ({ url: /data/${data.id} }), }), }), }); export const { useGetDataQuery } = api;
помогло ??
Нет, вы мне показали как запрос сделать, я это уже сделал. Я имел ввиду, что в одной компоненте получаю данные с аpi через хук useGetData(inputText)(inputText компонента получает из формы которая в ней) , а в другой компоненте я не могу получить данные, потому что она не имеет доступ к inputText. А мне очень надо)) потому что одна компонента с полем формы отправляет запрос на поулчение данных, а другая компонента их отрисовывает, но сделать отрисовку я в ней не могу, тк она не может сделать вызоваьк api не имея доступа к форме в другой компоненте
import { createAction, createSlice } from '@reduxjs/toolkit'; export const setData = createAction<{ data: string }>('setData'); const initialState = { data: '', }; const dataSlice = createSlice({ name: 'data', initialState, reducers: {}, extraReducers: (builder) => { builder.addCase(setData, (state, action) => { state.data = action.payload.data; }); }, }); export const { reducer } = dataSlice;
ну просто пользуешь несколько хуков для запросов в одном контейнере. Собственно там возникает много нелинейного кода и из-за этого у меня аллергия на RTKQuery и react-query. Так и не научился их готовить правильно )) Но если нравиться то наверно просто юзать несколько хуков в одном контейнере. Там если у тебя еще где-то этот хук будет использоваться, он в если кэш еще будет валидным, возьмет данные из кэша поэтому лишних запросов скорее всего не будет
Компонент мужского рода, не надо было смотреть самурая....
самурай говорит компонента в именительном падеже?
ты вообще не по теме вопроса ответил если что
В идеале, конечно, не использовать хуки для получения данных, но в твоём случае в голову приходит лишь передать пропсы вниз к нужному тебе компоненту, ЛИБО передать сам ответ из верхнего компонента в нижний
ужас))
Это да, но прикол в том что эти компоненты на одном уровне, можно контекст заюзать думал, но наверно есть способ поаккураинее
я вам скинул подключение первый способ второй способ подключение компонентов
Ну это основная проблема подхода с фетчингом данных в хуках
так ты не то скинул...
так разве уже не ушлм от фетча в хуках и юзэффекте в реакт-квери и аналоги?
Нет, вы мне показали как запрос сделать, я это уже сделал.
помогло. он это уже сделал.
ты как всегда крут иван, продолжай в том же духе
... до тебя он это уже сделал, а не с твоей помощью
Ну вот он и ушёл туда, но ему не помогло, как видишь
Потому что нужны параметры запроса, чтобы достать его из кеша
мое решение верное.
но не решает проблему, получается, бесполезное
Обсуждают сегодня