【发布时间】:2017-03-22 12:44:09
【问题描述】:
我正在使用 react-native 的 LayoutAnimation 来实现自定义开关组件。
我正在使用 LayoutAnimation 为圆的运动设置动画,如下所示:
componentWillUpdate() {
let switchAnimation = {
duration: 250,
update: {
type: LayoutAnimation.Types.linear,
property: LayoutAnimation.Properties.opacity,
},
};
LayoutAnimation.configureNext(switchAnimation);
}
开关是它自己的组件。它使用 css(justifyContent flex-start 或 flex-end)接收道具来将圆圈设置在左侧或右侧
在我看来问题是当开关改变值时其他组件也改变:即当开关被按下时:
1) 开关变化
2) 图标发生变化
3) 一些文字改动
以上所有动画。我想减少动画只影响开关
更新:我尝试过使用动画 API,但它似乎不支持动画 flex 属性。真的没有人广泛使用 The Animated API 吗?
【问题讨论】:
-
LayoutAnimation 在这里不是正确的方法。考虑使用动画 API facebook.github.io/react-native/docs/animations.html
-
文档中的示例使用组件状态。在我的情况下这将如何运作?我应该将道具映射到状态变量并从那里创建动画吗?
-
我已经用一个示例更新了我的答案,其中包括使用带有
flex属性的动画 API。
标签: react-native