Сложно сказать из вашего примера, так как похоже, что используемая вами функция Animated
не импортируется. Всякий раз, когда вы смотрите на вопрос, всегда старайтесь привести наименьший рабочий пример. Это очень помогает людям, пытающимся дать вам ответ.
Еще одна вещь, которая выглядит так, как будто может быть проблема, состоит в том, что ваша линия transform: [{ rotate: RotateData }]
не привязана ни к какому другому состоянию, что означает, что будущие нажатия не будут быть в состоянии сообщить количество поворотов, которые должны произойти. Я бы ожидал какую-то линию, например
const degrees = this.state.count * 45
; чтобы обозначить количество градусов, которое стрелка должна поворачивать после каждого щелчка.
Также, задавая вопрос, постарайтесь выделить проблемы на независимые части. Вы упоминаете две вещи:
- Ваша анимация застревает в oop
- Вы не знаете, как повернуть кнопку
Насколько далеко как показано во втором пуле выше, см. этот пример
Что необходимо отметить в вашей функции Animate
, так это то, что она принимает домен и диапазон. Чтобы обеспечить постоянное вращение и количество кликов в указанном диапазоне, вы можете использовать оператор %
по модулю. Смотрите упрощенный пример, который я создал здесь.
https://codesandbox.io/s/lucid-bas-bs7fw
import React, { useState } from "react";
const App = () => {
const [count, setCount] = useState(0);
const increment = () => setCount(count + 1);
return (
<>
<button onClick={increment}>Increment</button>
<div>{count * 45}</div>
</>
);
};
export default App;