useReconnect ​
Hook for reconnecting connectors.
Import ​
import { useReconnect } from 'wagmi'import { useReconnect } from 'wagmi'Usage ​
import { useReconnect } from 'wagmi'
import { useEffect } from 'react'
function App() {
const { reconnect } = useReconnect()
useEffect(() => {
reconnect()
}, [])
}import { useReconnect } from 'wagmi'
import { useEffect } from 'react'
function App() {
const { reconnect } = useReconnect()
useEffect(() => {
reconnect()
}, [])
}TIP
When WagmiProvider['reconnectOnMount'] is true, reconnect is called automatically on mount.
Parameters ​
import { type UseReconnectParameters } from 'wagmi'import { type UseReconnectParameters } from 'wagmi'config ​
Config | undefined
Config to use instead of retrieving from the from nearest WagmiProvider.
import { useReconnect } from 'wagmi'
import { config } from './config'
function App() {
const result = useReconnect({
config,
})
}import { useReconnect } from 'wagmi'
import { config } from './config'
function App() {
const result = useReconnect({
config,
})
}import { http, createConfig } from 'wagmi'
import { mainnet, sepolia } from 'wagmi/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})import { http, createConfig } from 'wagmi'
import { mainnet, sepolia } from 'wagmi/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})mutation ​
TanStack Query parameters. See the TanStack Query mutation docs for more info.
gcTime ​
number | Infinity | undefined
- The time in milliseconds that unused/inactive cache data remains in memory. When a mutation's cache becomes unused or inactive, that cache data will be garbage collected after this duration. When different cache times are specified, the longest one will be used.
- If set to
Infinity, will disable garbage collection
meta ​
Record<string, unknown> | undefined
If set, stores additional information on the mutation cache entry that can be used as needed. It will be accessible wherever reconnect is available (e.g. onError, onSuccess functions).
networkMode ​
'online' | 'always' | 'offlineFirst' | undefined
- defaults to
'online' - see Network Mode for more information.
onError ​
((error: ReconnectErrorType, variables: { connectors?: (CreateConnectorFn | Connector)[] | undefined; }, context?: context | undefined) => Promise<unknown> | unknown) | undefined
This function will fire if the mutation encounters an error and will be passed the error.
onMutate ​
((variables: { connectors?: (CreateConnectorFn | Connector)[] | undefined; }) => Promise<context | void> | context | void) | undefined
- This function will fire before the mutation function is fired and is passed the same variables the mutation function would receive
- Useful to perform optimistic updates to a resource in hopes that the mutation succeeds
- The value returned from this function will be passed to both the
onErrorandonSettledfunctions in the event of a mutation failure and can be useful for rolling back optimistic updates.
onSuccess ​
((data: { accounts: readonly [Address, ...Address[]]; chainId: number; connector: Connector }, variables: { connectors?: (CreateConnectorFn | Connector)[] | undefined; }, context?: context | undefined) => Promise<unknown> | unknown) | undefined
This function will fire when the mutation is successful and will be passed the mutation's result.
onSettled ​
((data: { accounts: readonly [Address, ...Address[]]; chainId: number; connector: Connector }, error: ReconnectErrorType, variables: { connectors?: (CreateConnectorFn | Connector)[] | undefined; }, context?: context | undefined) => Promise<unknown> | unknown) | undefined
This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error
queryClient ​
QueryClient
Use this to use a custom QueryClient. Otherwise, the one from the nearest context will be used.
retry ​
boolean | number | ((failureCount: number, error: ReconnectErrorType) => boolean) | undefined
- Defaults to
0. - If
false, failed mutations will not retry. - If
true, failed mutations will retry infinitely. - If set to an
number, e.g.3, failed mutations will retry until the failed mutations count meets that number.
retryDelay ​
number | ((retryAttempt: number, error: ReconnectErrorType) => number) | undefined
- This function receives a
retryAttemptinteger and the actual Error and returns the delay to apply before the next attempt in milliseconds. - A function like
attempt => Math.min(attempt > 1 ? 2 ** attempt * 1000 : 1000, 30 * 1000)applies exponential backoff. - A function like
attempt => attempt * 1000applies linear backoff.
Return Type ​
import { type UseReconnectReturnType } from 'wagmi'import { type UseReconnectReturnType } from 'wagmi'connectors ​
readonly Connector[]
Globally configured connectors via createConfig.
import { useReconnect } from 'wagmi'
import { mainnet } from 'wagmi/chains'
import { useEffect } from 'react'
function App() {
const { reconnect, connectors } = useReconnect()
useEffect(() => {
reconnect({ connectors })
}, [])
}import { useReconnect } from 'wagmi'
import { mainnet } from 'wagmi/chains'
import { useEffect } from 'react'
function App() {
const { reconnect, connectors } = useReconnect()
useEffect(() => {
reconnect({ connectors })
}, [])
}import { http, createConfig } from 'wagmi'
import { mainnet, sepolia } from 'wagmi/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})import { http, createConfig } from 'wagmi'
import { mainnet, sepolia } from 'wagmi/chains'
export const config = createConfig({
chains: [mainnet, sepolia],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
})reconnect ​
(variables: { connectors?: (CreateConnectorFn | Connector)[] | undefined; }, { onSuccess, onSettled, onError }) => void
The mutation function you can call with variables to trigger the mutation and optionally hooks on additional callback options.
variables ​
{ connectors?: (CreateConnectorFn | Connector)[] | undefined; }The variables object to pass to the
reconnectaction.onSuccess ​
(data: { accounts: readonly [Address, ...Address[]]; chainId: number; connector: Connector }, variables: { connectors?: (CreateConnectorFn | Connector)[] | undefined; }, context: TContext) => voidThis function will fire when the mutation is successful and will be passed the mutation's result.
onError ​
(error: ReconnectErrorType, variables: { connectors?: (CreateConnectorFn | Connector)[] | undefined; }, context: TContext | undefined) => voidThis function will fire if the mutation encounters an error and will be passed the error.
onSettled ​
(data: { accounts: readonly [Address, ...Address[]]; chainId: number; connector: Connector } | undefined, error: ReconnectErrorType | null, variables: { connectors?: (CreateConnectorFn | Connector)[] | undefined; }, context: TContext | undefined) => void- This function will fire when the mutation is either successfully fetched or encounters an error and be passed either the data or error
- If you make multiple requests,
onSuccesswill fire only after the latest call you've made.
reconnectAsync ​
(variables: { connectors?: (CreateConnectorFn | Connector)[] | undefined; }, { onSuccess, onSettled, onError }) => Promise<{ accounts: readonly [Address, ...Address[]]; chainId: number; connector: Connector }>
Similar to reconnect but returns a promise which can be awaited.
data ​
{ accounts: readonly [Address, ...Address[]]; chainId: number; connector: Connector } | undefined
- Defaults to
undefined - The last successfully resolved data for the mutation.
error ​
ReconnectErrorType | null
The error object for the mutation, if an error was encountered.
failureCount ​
number
- The failure count for the mutation.
- Incremented every time the mutation fails.
- Reset to
0when the mutation succeeds.
failureReason ​
ReconnectErrorType | null
- The failure reason for the mutation retry.
- Reset to
nullwhen the mutation succeeds.
isError / isIdle / isPending / isSuccess ​
boolean
Boolean variables derived from status.
isPaused ​
boolean
- will be
trueif the mutation has beenpaused. - see Network Mode for more information.
reset ​
() => void
A function to clean the mutation internal state (e.g. it resets the mutation to its initial state).
status ​
'idle' | 'pending' | 'error' | 'success'
'idle'initial status prior to the mutation function executing.'pending'if the mutation is currently executing.'error'if the last mutation attempt resulted in an error.'success'if the last mutation attempt was successful.
submittedAt ​
number
- The timestamp for when the mutation was submitted.
- Defaults to
0.
variables ​
{ connectors?: (CreateConnectorFn | Connector)[] | undefined; } | undefined
- The variables object passed to
reconnect. - Defaults to
undefined.
TanStack Query ​
import {
type ReconnectData,
type ReconnectVariables,
type ReconnectMutate,
type ReconnectMutateAsync,
reconnectMutationOptions,
} from 'wagmi/query'import {
type ReconnectData,
type ReconnectVariables,
type ReconnectMutate,
type ReconnectMutateAsync,
reconnectMutationOptions,
} from 'wagmi/query'