1. Read the FAQs 👇
2. Describe the bug
The items on the screen disappear when an attempt to reorder is made
3. IMPORTANT: Provide a CodeSandbox reproduction of the bug
A CodeSandbox minimal reproduction will allow us to quickly follow the reproduction steps. Without one, this bug report won't be accepted.
4. Steps to reproduce
Steps to reproduce the behavior:
- Go to 'https://codesandbox.io/s/framer-motion-5-drag-to-reorder-lists-forked-s84qwh?file=/src/App.tsx:343-464'
- Try to reorder any item on the list
- Notice how the items disappear from the screen
5. Expected behavior
Items should remain on the screen and I should be able to reorder them.
6. Video or screenshots
If applicable, add a video or screenshots to help explain the bug.
7. Environment details
If applicable, let us know which OS, browser, browser version etc you're using.
FAQs
Framer Motion won't install
Framer Motion 7+ uses React 18 as a minimum. If you can't upgrade React, install the latest version of Framer Motion 6.
height: "auto" is jumping
Animating to/from auto requires measuring the DOM. There's no perfect way to do this and if you have also applied padding to the same element, these measurements might be wrong.
The recommended solution is to move padding to a child element. See this issue for the full discussion.
Type error with AnimateSharedLayout
AnimateSharedLayout was deprecated in 5.0. Refer to the upgrade guide for instructions on how to remove.
Preact isn't working
Framer Motion isn't compatible with Preact.
AnimatePresence isn't working
Have all of its immediate children got a unique key prop that remains the same for that component every render?
// Bad: The index could be given to a different component if the order of items changes
<AnimatePresence>
{items.map((item, index) => <Component key={index} />)}
</AnimatePresence>
// Good: The item ID is unique to each component
<AnimatePresence>
{items.map((item, index) => <Component key={item.id} />)}
</AnimatePresence>
Is the AnimatePresence correctly outside of the controlling conditional? AnimatePresence must be rendered whenever you expect an exit animation to run - it can't do so if it's unmounted!
// Bad: AnimatePresence is unmounted - exit animations won't run
{isVisible && (
<AnimatePresence>
<Component />
</AnimatePresence>
)}
// Good: Only the children are unmounted - exit animations will run
<AnimatePresence>
{isVisible && <Component />}
</AnimatePresence>
1. Read the FAQs 👇
2. Describe the bug
The items on the screen disappear when an attempt to reorder is made
3. IMPORTANT: Provide a CodeSandbox reproduction of the bug
A CodeSandbox minimal reproduction will allow us to quickly follow the reproduction steps. Without one, this bug report won't be accepted.
4. Steps to reproduce
Steps to reproduce the behavior:
5. Expected behavior
Items should remain on the screen and I should be able to reorder them.
6. Video or screenshots
If applicable, add a video or screenshots to help explain the bug.
7. Environment details
If applicable, let us know which OS, browser, browser version etc you're using.
FAQs
Framer Motion won't install
Framer Motion 7+ uses React 18 as a minimum. If you can't upgrade React, install the latest version of Framer Motion 6.
height: "auto"is jumpingAnimating to/from
autorequires measuring the DOM. There's no perfect way to do this and if you have also applied padding to the same element, these measurements might be wrong.The recommended solution is to move padding to a child element. See this issue for the full discussion.
Type error with
AnimateSharedLayoutAnimateSharedLayoutwas deprecated in 5.0. Refer to the upgrade guide for instructions on how to remove.Preact isn't working
Framer Motion isn't compatible with Preact.
AnimatePresenceisn't workingHave all of its immediate children got a unique
keyprop that remains the same for that component every render?Is the
AnimatePresencecorrectly outside of the controlling conditional?AnimatePresencemust be rendered whenever you expect anexitanimation to run - it can't do so if it's unmounted!