reactjs - 如何使用 React-Spring 更改颜色。我想包括延迟和持续时间
问题描述
我正在使用反应弹簧。我正在更改正在工作的背景颜色,但是我希望执行以下操作。等待 10 秒,然后在这 10 秒之后循环通过颜色而没有延迟。我还希望每种颜色的持续时间为 1 秒。
目前我的问题是它等待 10 秒然后开始循环,但让我在每次颜色更改之间等待 10 秒。不知道我做错了什么
import {useSpring, animated} from 'react-spring';
const AnimatedView = animated(View);
const bgStyle = useSpring({
to: {backgroundColor: 'red'},
from: {backgroundColor: 'green'},
delay: 10000,
config: {duration: 1000},
loop: true,
});
return <AnimatedView style={bgStyle}>{props.children}</AnimatedView>;
解决方案
我认为我们首先需要等待 10 秒。但是 的delay
道具useSpring
让我们在每个动画开始时等待 10 秒。因为 的值delay
没有更新,所以它总是10000
。
在这里,我们可以useRef
参考来跟踪我们的初始延迟。通过检查这一点,我们可以首先返回 a delay
,10000
然后返回0
其余部分。
const initialDelay = useRef(true);
const bgStyle = useSpring({
from: { backgroundColor: "green" },
to: { backgroundColor: "red" },
delay: () => {
if (initialDelay.current) {
initialDelay.current = false;
return 10000;
}
return 0;
},
config: { duration: 1000 },
loop: true
});
推荐阅读
- javascript - 带有 HTML、CSS、JavaScript 的全屏覆盖菜单
- python - 如何打印 qlistwidget 中所有选中项目的列表。在蟒蛇
- html - 如何在 ssh 服务器上运行 sass?
- java - 网络连接断开时如何保持 Java Client Socket 活动?
- spring - 如何在没有 Spring Boot 的情况下使用 Spring WebClient
- spring-boot - Spring Boot 推送通知 restTemplate
- javascript - 在 json 中查找元素 - 使用下划线库或其他方式
- javascript - 如何从另一个数组在新数组中添加值
- keycloak - KEYCLOAK_IDENTITY_LEGACY ?KEYCLOAK_SESSION_LEGACY?
- flutter - Webview 在 Flutter 中显示 Google Photos 的问题