есть вот такой сервис goalsAPI.ts:
```import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'import { Goal, Site } from 'interfaces'
import { Cookies } from 'react-cookie'import { CreateGoalType, EditGoalType } from 'redux-store/types'
const cookies = new Cookies()
const BASEURL = '/api/goals'
export const goalsAPI = createApi({
reducerPath: 'goalsAPI', baseQuery: fetchBaseQuery({ baseUrl: BASEURL }),
tagTypes: ['Goals'], refetchOnReconnect: true,
endpoints: (builder) => ({
createGoal: builder.mutation<Site, CreateGoalType>({ query(goal) {
return { url: '',
method: 'POST', withCredentials: true,
body: goal, headers: {
'X-CSRFToken': cookies.get('csrftoken'), },
} },
invalidatesTags: ['Goals'], }),
getAllGoalsByExpSlug: builder.query<Goal[], string>({ query(slug) {
return { url: `/${slug}`,
withCredentials: true, }
}, providesTags: ['Goals'],
}),
})
export const { useCreateGoalMutation, useGetAllGoalsByExpSlugQuery, useDeleteGoalMutation, useEditGoalMutation } = goalsAPI```
У меня есть компонент с двумя карточками, для которых в сторе нужно сохранить initialState, это массив из двух объектов, выглядит так:
const initialData: Goal[] = [
{
label: '',
type: 'button_click',
target_selector: '',
target_url: '',
experiment_slug: '',
},
{
label: '',
type: 'link_click',
target_selector: '',
target_url: '',
experiment_slug: '',
},
]
Как мне прокинуть его в стору и при любой мутации обновлять только определенный, например по type?
Кстати getAllGoalsByExpSlug получаю список goals по slug
доку не смотрел? там есть работа с ответом в rtk query и по возврату респонса, ты с ним можешь делать что угодно, хоть в стор кидать, хоть в другой запрос закинуть
там есть типа transformResponse, но я не понял как сделать типа вот такого
Обсуждают сегодня