gpt4 book ai didi

reactjs - 如何在单击按钮时使用钩子(Hook)重新制作 react-spring 动画?

转载 作者:行者123 更新时间:2023-12-05 02:10:11 24 4
gpt4 key购买 nike

以下来自 official examples 的简单组件:

import {useSpring, animated} from 'react-spring'

function App() {
const props = useSpring({opacity: 1, from: {opacity: 0}})
return <animated.div style={props}>I will fade in</animated.div>
}

问题

如何再次为 fadeIn 效果(或任何其他动画)制作动画,例如,当我单击按钮或解决 promise 时?

最佳答案

你基本上可以用 useSpring 和一个事件产生两种效果。

  1. 您可以根据事件的状态更改样式,例如不透明度。

  2. 您可以在状态更改时重新启动动画。最简单的重启方式是重新渲染它。

我创建了一个示例。我想你想要第二种情况。在我的示例中,我通过更改其关键属性重新呈现第二个组件。

const Text1 = ({ on }) => {
const props = useSpring({ opacity: on ? 1 : 0, from: { opacity: 0 } });
return <animated.div style={props}>I will fade on and off</animated.div>;
};

const Text2 = () => {
const props = useSpring({ opacity: 1, from: { opacity: 0 } });
return <animated.div style={props}>I will restart animation</animated.div>;
};

function App() {
const [on, set] = React.useState(true);

return (
<div className="App">
<Text1 on={on} />
<Text2 key={on} />
<button onClick={() => set(!on)}>{on ? "On" : "Off"}</button>
</div>
);
}

这是工作示例:https://codesandbox.io/s/upbeat-kilby-ez7jy

我希望这就是你的意思。

关于reactjs - 如何在单击按钮时使用钩子(Hook)重新制作 react-spring 动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59101839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com