Пружина react-spring (версия 9), значение «to» которой является асинхронной функцией, проходит цикл анимации при каждом повторном рендеринге. Если «to» - это простой объект, анимация запускается только изначально, как и ожидалось.
Рассмотрим этот компонент:
const Component = () => {
// let's trigger some rerenders
const [state, setState] = useState(false);
useEffect(() => {
setInterval(() => {
setState(x => !x);
}, 1000);
}, []);
// a spring with an async func provided to 'to'
const props = useSpring({
to: async (next, cancel) => {
await next({opacity: 1, color: '#ffaaee'})
await next({opacity: 0, color: 'rgb(14,26,19)'})
},
from: {opacity: 0, color: 'red'}
});
return <animated.div style={props}>I will fade in and out</animated.div>
};
Текст будет мигать вечно.
Я считаю, что это неправильное поведение. Это баг, или я что-то не так делаю?