Back to React Spring

useTrail

docs/app/routes/docs.components.use-trail.mdx

10.0.31.8 KB
Original Source

import { formatFrontmatterToRemixMeta } from '../helpers/meta'

export const meta = formatFrontmatterToRemixMeta(frontmatter)

useTrail

useTrail has an identical API signature to useSprings the difference is the hook automatically orchestrates the springs to stagger one after the other.

Usage

With a function & deps

jsx
import { useTrail, animated } from '@react-spring/web'

export default function MyComponent() {
  const [trails, api] = useTrail(
    2,
    () => ({
      from: { opacity: 0 },
      to: { opacity: 1 },
    }),
    []
  )

  return (
    <div>
      {trails.map(props => (
        <animated.div style={props}>Hello World</animated.div>
      ))}
    </div>
  )
}

With a config object

jsx
import { useTrail, animated } from '@react-spring/web'

export default function MyComponent() {
  const trails = useTrail(2, {
    from: { opacity: 0 },
    to: { opacity: 1 },
  })

  return (
    <div>
      {trails.map(props => (
        <animated.div style={props}>Hello World</animated.div>
      ))}
    </div>
  )
}

Reference

import { TablesConfiguration } from '../components/Tables/TablesConfig'

<TablesConfiguration />

Typescript

tsx
function useTrail(count: number, configuration: ConfigObject): SpringValues[]

function useTrail(
  count: number,
  configurationFn: (springIndex: number) => ConfigObject,
  deps?: any[]
): [springs: SpringValues[], api: SpringRef]

Where ConfigObject is described above

TS Glossary

Examples

import { ExampleGrid } from '../components/Grids/ExampleGrid'

<ExampleGrid sandboxTitles={['Basic Trail', 'Goo Blobs', 'Smile Grid', 'Wordle']} />

Can't find what you're looking for? Check out all our examples!