我正在寻找一种在 React 中为计数器设置动画的方法。
为了举例,我有以下结构的 3 个组件:
(Master是logicComponent和Counter的父级)
逻辑组件将一个数字传递给主控组件,主控组件将其传递给应该执行动画的计数器组件。 逻辑组件以增量方式发送数字,也就是说,每次发生某些事情时,它都会发送更新。
例如,logicCounter 调用 Master 十次来递增计数器,我预计 Counter 将渲染 10 次,显示 10 个数字。 到目前为止我尝试过的所有方法都显示了最终数字(10),没有任何增量。
在寻找解决方案后,我遇到了 Window.requestAnimationFrame(),我正在寻找一种在 React 中实现它的正确方法。
我试图避免使用第 3 方 npms/库。
希望得到您的帮助/想法。 谢谢。
P粉2140893492023-10-22 09:06:16
对于 React-JS 中的动画计数器,我使用 'react-count' :围绕“CountUp.js”的可配置 React 组件包装器。
请参考:https://github.com/glennreyes/react-countup。 查看现场演示:https://tr8tk.csb.app/ 步骤:
安装:
*npm install react-countup --save* or *yarn add react-countup*
简单示例:
import React from 'react'; import { render } from 'react-dom'; import CountUp from 'react-countup'; render( <CountUp start={0} end={160526} />, document.getElementById('root') );
高级示例:
import React from 'react'; import { render } from 'react-dom'; import CountUp from 'react-countup'; const onComplete = () => { console.log('Completed!'); }; const onStart = () => { console.log('Started!'); }; render( <CountUp className="account-balance" start={160527.0127} end={-875.0319} duration={2.75} useEasing={true} useGrouping={true} separator=" " decimals={4} decimal="," prefix="EUR " suffix=" left" onComplete={onComplete} onStart={onStart} />, document.getElementById('root'), );