javascript - 当用户从平面数据列表中单击一个动画组件时,对它进行动画处理
问题描述
嗨所以我有一个平面列表,它创建一个特定列表,每个列表上都有一个按钮。当用户点击一个按钮时,用户点击的那个按钮应该有动画。到目前为止,我只能为平面列表中的所有按钮设置动画,而不仅仅是我需要的那个。有什么建议么?到目前为止,这是我的实现示例。不要担心拼写太多,我更担心逻辑。多谢你们!
renderAnimation(post, index, item) {
return (
<View>
<TouchableOpacity onPress={() => {
this.setState({ likesButton: true })
}}>
<Animatable.Image
animation={this.state.likesButton ? "bounce" : null}
duration={3000}
/>
</TouchableOpacity>
</View>
);
}
<Flatlist
dataSource={this.state.data}
renderItem={({item, index}) => {
<View>
{this.renderAnimation()}
</View>
}}
/>
因此,当用户单击一个按钮时,这会为列表上的所有按钮设置动画。但我只想要一个按钮来动画用户点击,而不是全部
解决方案
所以我能够通过做一些hacky来解决这个问题。我基本上使用渲染所有项目的平面列表进行动画处理,然后我在平面列表中的所有其他未选择的项目上渲染为 null,然后我再次重新渲染这些项目以给出只有一个选定项目与动画一起渲染的外观。
推荐阅读
- swift - 如何在 swift 5 中将字典 [String:String] 转换为 URLQueryItem
- visual-studio-2019 - VS2019 XML文档文件不会取消选中
- android - 我无法将 Android 版本上传到内部测试
- c++ - 类成员绑定到枚举
- javascript - 在 React Native 中实现 Underscore.js?
- mysql - 动态参数选择 MySQL 存储过程
- javascript - 模拟时钟 - 带有 Javascript 的 PHP - 日期函数
- java - 在 JsonArrayRequest 中使用 JsonObjectRequest
- node.js - 如何使用nodejs在redis中插入对象数组
- javascript - 如何排序
- 里面的元素
- 使用 JavaScript(冒泡排序)?
- 里面的元素