MCPcopy Create free account
hub / github.com/TanStack/query / useMutation

Function useMutation

packages/solid-query/src/useMutation.ts:176–241  ·  view source on GitHub ↗
(
  options: UseMutationOptions<TData, TError, TVariables, TOnMutateResult>,
  queryClient?: Accessor<QueryClient>,
)

Source from the content-addressed store, hash-verified

174 * ```
175 */
176export function useMutation<
177 TData = unknown,
178 TError = DefaultError,
179 TVariables = void,
180 TOnMutateResult = unknown,
181>(
182 options: UseMutationOptions<TData, TError, TVariables, TOnMutateResult>,
183 queryClient?: Accessor<QueryClient>,
184): UseMutationResult<TData, TError, TVariables, TOnMutateResult> {
185 const resolveClient = useQueryClientResolver(queryClient)
186 const client = createMemo(() => resolveClient())
187
188 const observer = new MutationObserver<
189 TData,
190 TError,
191 TVariables,
192 TOnMutateResult
193 >(client(), options())
194
195 const mutate: UseMutateFunction<
196 TData,
197 TError,
198 TVariables,
199 TOnMutateResult
200 > = (...args) => {
201 observer.mutate(args[0] as TVariables, args[1]).catch(noop)
202 }
203
204 const [state, setState] = createStore<
205 UseMutationResult<TData, TError, TVariables, TOnMutateResult>
206 >({
207 ...observer.getCurrentResult(),
208 mutate,
209 mutateAsync: observer.getCurrentResult().mutate,
210 })
211
212 createComputed(() => {
213 observer.setOptions(options())
214 })
215
216 createComputed(
217 on(
218 () => state.status,
219 () => {
220 if (
221 state.isError &&
222 shouldThrowError(observer.options.throwOnError, [state.error])
223 ) {
224 throw state.error
225 }
226 },
227 ),
228 )
229
230 const unsubscribe = observer.subscribe((result) => {
231 setState({
232 ...result,
233 mutate,

Callers 10

useMovieFunction · 0.90
MutateFunction · 0.50
PageFunction · 0.50
MutatesFunction · 0.50
ComponentFunction · 0.50
MutationsFunction · 0.50
PageFunction · 0.50
MutationFunction · 0.50

Calls 7

getCurrentResultMethod · 0.95
setOptionsMethod · 0.95
useQueryClientResolverFunction · 0.90
shouldThrowErrorFunction · 0.90
clientFunction · 0.85
optionsFunction · 0.50
subscribeMethod · 0.45

Tested by 7

MutateFunction · 0.40
PageFunction · 0.40
MutatesFunction · 0.40
ComponentFunction · 0.40
MutationsFunction · 0.40
PageFunction · 0.40
MutationFunction · 0.40