要解决这个问题,您需要将Framer Motion组件的位置属性存储在state中,并使用onDragEnd事件更新该状态。这样,组件的位置将在每个重新渲染时保持不变。
以下是一个示例代码,展示如何用useState和onDragEnd事件保持Framer Motion组件的位置不变:
import { motion } from "framer-motion";
import { useState } from "react";
const DraggableComponent = () => {
// 创建初始状态,用于存储组件的位置
const [position, setPosition] = useState({ x: 0, y: 0 });
// 更新位置状态
const handleDragEnd = (event, info) => {
setPosition({ x: info.point.x, y: info.point.y });
};
// 返回可拖动的Framer Motion组件,并将位置设为状态中的位置
return (
// 这里是组件的内容
);
};
通过使用useState和onDragEnd事件,该组件的位置将在每次重新渲染时保持不变。
上一篇:保持Keras加载以进行评估
下一篇:保持空格转义的新URI