Как заставить React CountUp считать от предыдущего числа?

Я новичок в React и использую React CountUp для анимации подсчета чисел, например:

<CountUp end = {totalAmount} />

Это работает — всякий раз, когда totalAmount изменяется, CountUp будет анимировать счет от 0 до любого нового числа.

Однако я хочу анимировать его, чтобы он считался от предыдущего числа. Например, если totalAmount изменится с 70 на 100, я хочу, чтобы анимация просто считала от 70. Как и сейчас, любые изменения totalAmount всегда будут начинаться с 0.

Я вижу, что есть доступная опора update, но не знаю, как ее использовать. Я пробовал:

<CountUp end = {totalAmount} update = {totalAmount} />

Я вижу, что есть способ сделать это с помощью «крючка», но, честно говоря, понятия не имею, как включить крючок в мой более широкий компонент React.

Сможет ли кто-нибудь вообще указать мне правильное направление?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
57
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Попробуйте добавить preserveValue = {true}

<CountUp end = {totalAmount} preserveValue = {true}/>

Документация

Используйте логический флаг preserveValue. Он сохраняет ранее закончившийся номер, чтобы начать с него новую анимацию. Проверьте ссылку на Npm

<CountUp preserveValue = {true} />

Вы можете использовать функцию обратного вызова onEnd для обновления свойств доступности и установки числа после завершения каждого перехода, используя такой крючок:

const [Current, setCurrent] = React.useState(0); /* make sure you have {useCountUp} imported from countup and its is called */
        
const onEnd = () => {
      setCurrent(totalAmount); /*Whatever you want to do here really*/
};

/*Then set component up like this */
<CountUp end = {totalAmount} start = {Current} onEnd = {onEnd}/>

Документация

Другие вопросы по теме