reactjs - 如何动态创建动画视图并保持其他动画状态反应?
问题描述
我想为直播视频创建一个弹幕组件:
render() {
return (
<View>
<Video />
<BarrageLayer ref={r => this.barrageLayer = r} />
</View>
)
}
Barrage
可以从右到左显示多个动画文本,因此它提供了一个功能:
onNewMessageReceive(msg) {
this.barrageLayer.show(msg)
}
动画很简单:
render() {
const marginLeft = this.animatedValue.interpolate({
inputRange: [0, 1],
outputRange: [width + 100, -width]
})
const { style } = this.props
return (
<View style={[s.container, style]}>
<Animated.Text style={[s.color, { marginLeft }]}>TEST</Animated.Text>
</View>
)
}
问题来了:如何在不打破旧动画弹幕的情况下添加新弹幕?
我state
用来保存弹幕列表,但如果状态发生变化,动画应该重新开始,如果弹幕伸出屏幕,它应该从状态列表中删除。
解决方案
推荐阅读
- bootstrap-4 - Blazor 服务器客户端中的引导工具提示问题
- javascript - IE 11 - 错误:[$controller:ctrlreg] 名为“xxx”的控制器未注册
- windows - 替代使用 findstr
- r - 百分比条形图
- python - 我需要一个正则表达式来在两个标签 python 之间找到一个短语
- python - Python 多个列表循环仅在列表之一出现异常后继续
- svg - 我可以为 [tableValues] 上的每个值设置特定间距吗?
- r - R reactable - 更新单行
- powershell - Powershell - 遍历从文本文件中获取的数组项失败
- c++ - 通过 C/C++ (Embarcadero) 生成以太坊地址