169 похожих чатов

Парни, привет, нужен совет по RTK-Query. Есть компонента в которой идёт

вызов к api, и есть другая компонента которой нужны тоже эти данные и обычно в ней тоже пишут запрос к api и данные если что берутся из кэша, без повторного запроса. А что делать если для запроса к api мне нужны некоторые данные к запросу которая которая одна компонента получает из формы своей, а в другой компоненте нет доступа к этой форме и для запроса она взять данные не может?

30 ответов

45 просмотров

вы редакс будете использовать ??

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;

Valhalla-Awaits Автор вопроса
ПРАВОСЛАВНЫЕ ЗНАКОМСТВА / РЕКЛАМА ЧАТОВ
помогло ??

Нет, вы мне показали как запрос сделать, я это уже сделал. Я имел ввиду, что в одной компоненте получаю данные с аpi через хук useGetData(inputText)(inputText компонента получает из формы которая в ней) , а в другой компоненте я не могу получить данные, потому что она не имеет доступ к inputText. А мне очень надо)) потому что одна компонента с полем формы отправляет запрос на поулчение данных, а другая компонента их отрисовывает, но сделать отрисовку я в ней не могу, тк она не может сделать вызоваьк api не имея доступа к форме в другой компоненте

Valhalla Awaits
Нет, вы мне показали как запрос сделать, я это уже...

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. Так и не научился их готовить правильно )) Но если нравиться то наверно просто юзать несколько хуков в одном контейнере. Там если у тебя еще где-то этот хук будет использоваться, он в если кэш еще будет валидным, возьмет данные из кэша поэтому лишних запросов скорее всего не будет

Компонент мужского рода, не надо было смотреть самурая....

Sergey Grishchenko
Компонент мужского рода, не надо было смотреть сам...

самурай говорит компонента в именительном падеже?

В идеале, конечно, не использовать хуки для получения данных, но в твоём случае в голову приходит лишь передать пропсы вниз к нужному тебе компоненту, ЛИБО передать сам ответ из верхнего компонента в нижний

Valhalla-Awaits Автор вопроса
Sergey Grishchenko
В идеале, конечно, не использовать хуки для получе...

Это да, но прикол в том что эти компоненты на одном уровне, можно контекст заюзать думал, но наверно есть способ поаккураинее

Valhalla Awaits
Это да, но прикол в том что эти компоненты на одно...

я вам скинул подключение первый способ второй способ подключение компонентов

Valhalla Awaits
Это да, но прикол в том что эти компоненты на одно...

Ну это основная проблема подхода с фетчингом данных в хуках

Sergey Grishchenko
Ну это основная проблема подхода с фетчингом данны...

так разве уже не ушлм от фетча в хуках и юзэффекте в реакт-квери и аналоги?

ПРАВОСЛАВНЫЕ ЗНАКОМСТВА / РЕКЛАМА ЧАТОВ
помогло. он это уже сделал.

... до тебя он это уже сделал, а не с твоей помощью

koichi
так разве уже не ушлм от фетча в хуках и юзэффекте...

Ну вот он и ушёл туда, но ему не помогло, как видишь

Sergey Grishchenko
Ну вот он и ушёл туда, но ему не помогло, как види...

Потому что нужны параметры запроса, чтобы достать его из кеша

ПРАВОСЛАВНЫЕ ЗНАКОМСТВА / РЕКЛАМА ЧАТОВ
мое решение верное.

но не решает проблему, получается, бесполезное

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта