Size: a a a

Redux — русскоговорящее сообщество

2021 October 14

А

Александр in Redux — русскоговорящее сообщество
Нельзя менять baseUrl, на то он и base, если меняться должно прям всё, то оставляй его пустым и дальше уже в query задавай всё, что тебе нужно задавать динамически.
источник

СТ

Семён Т in Redux — русскоговорящее сообщество
Не, оказывается можно:)
Вопрос решил. Есть такая штука как dynamicBaseQuery
Я определяю свой собственный асинхронный метод, внутри которого обращаюсь во вне (в стор в моем случае) и возвращаю обогащенный метод fetchBaseQuery

const dynamicBaseQuery: BaseQueryFn<string | FetchArgs,
 unknown,
 FetchBaseQueryError> = async (args, WebApi, extraOptions) => {
 const baseUrl = (WebApi.getState() as any).configuration.baseUrl;
 const rawBaseQuery = fetchBaseQuery({ baseUrl });
 return rawBaseQuery(args, WebApi, extraOptions);
};



И дальше просто вставляю его в createApi


export const WebApi = createApi({
 reducerPath: 'API',
 baseQuery: dynamicBaseQuery,
 endpoints: () => ({}),

});


Полет нормальный
источник

А

Александр in Redux — русскоговорящее сообщество
Фига, не знал про такую штуку, теперь буду знать, спасибо за информацию!
источник

СТ

Семён Т in Redux — русскоговорящее сообщество
Пол дня угробил на это:)
Вдохновлялся вот тут https://redux-toolkit.js.org/rtk-query/usage/customizing-queries#constructing-a-dynamic-base-url-using-redux-state
источник

А

Александр in Redux — русскоговорящее сообщество
Ага уже нагуглил. Блин, а ведь эта штука и несколько моих кейсов бы решила без кучи лишних хуков и selectFromResult, надо будет зарефакторить :D
источник

А

Александр in Redux — русскоговорящее сообщество
Хотя чё я написал, selectFromResult тут не при чём, да и решение далеко не всегда применимо из-за отсутствия триггера на обновление выборки, после изменения параметров из которых формируется урл. Но всё равно полезная штука.
источник

СТ

Семён Т in Redux — русскоговорящее сообщество
У меня кейс по проще чем у тебя видимо:)
источник

А

Александр in Redux — русскоговорящее сообщество
У меня недавно был кейс с таблицой, где отображается информация, агрегированная по периоду между двумя датами, которые в дейтпикере можно менять, соответственно поменялись даты - надо, чтобы произошёл заново запрос за данными для таблицы. Пришлось писать кастомный хук, в котором делать селект дат и передавать их аргументом в useQuery.
источник

А

Александр in Redux — русскоговорящее сообщество
Решение выглядит дико костыльным, но другого я не нашёл в принцпе...
источник

СТ

Семён Т in Redux — русскоговорящее сообщество
Ну звучит вроде логично вполне, не знаю где тут костыль. Ты же в любом случае должен сделать запрос за новыми данными
источник

А

Александр in Redux — русскоговорящее сообщество
Костыль в том, что надо в реактовские хуки выносить логику, которая по хорошему должна целиком и полностью находится в стм.
источник
2021 October 16

DN

Drew Naumenko in Redux — русскоговорящее сообщество
с тулкитом это аналог switch / case  ? только можно не париться по поводу мутирования?

const usersSlice = createSlice({
 name: 'users',
 initialState: { entities: [], loading: 'idle' },
 reducers: {
   // standard reducer logic, with auto-generated action types per reducer
 },
 extraReducers: (builder) => {
   // Add reducers for additional action types here, and handle loading state as needed
   builder.addCase(fetchUserById.fulfilled, (state, action) => {
     // Add user to the state array
     state.entities.push(action.payload)
   })
 },
})
источник

СТ

Семён Т in Redux — русскоговорящее сообщество
Да
источник
2021 October 20

IM

Ivan Minin in Redux — русскоговорящее сообщество
привет. подскажите, пожалуйста, где можно почитать или найти хороший пример, как можно состыковать redux и socket.io. находил фрагменты с реализацией через мидлвару socketMiddleware (например, вот https://coderoad.ru/37876889/React-Redux-%D0%B8-Websockets-%D1%81-socket-io), но не понимаю, как это правильно до ума довести надо...
источник

D

Dmitrii in Redux — русскоговорящее сообщество
источник

IM

Ivan Minin in Redux — русскоговорящее сообщество
Я это читал, меня больше интересует, как лучше хранить инстанс сокета и как подключить эту мидлвру
источник

А

Александр in Redux — русскоговорящее сообщество
Если редакс с rtk, то вот.
https://redux-toolkit.js.org/rtk-query/usage/streaming-updates
источник

IM

Ivan Minin in Redux — русскоговорящее сообщество
Спасибо, но, к сожалению, у меня не rtk, но я думал на него перейти. Это слишком муторно и вообще чтоит ли того?
источник
2021 October 21

ИЕ

Иван Егоров... in Redux — русскоговорящее сообщество
У меня чат на websocket + redux. Но socket.io не использовал
источник

IM

Ivan Minin in Redux — русскоговорящее сообщество
ну у меня тут не только чат должен быть, а еще и webrtc, потоки которого я через сокет передаю + еще там. я понимаю, что на обычном websocket можно это сделать, но преимущества socket.io для меня важны
источник