javascript - 如何在 React Native 的函数中加载 Lottie 动画?
问题描述
我的想法类似于“instagram like”,当你点击它时,它应该呈现一个心脏动画
我的代码:当您点击心形按钮时,它会调用“changeFavorite”函数,该函数将在 API 中设置 'favorite = true' 并呈现动画。它更新 API,但不返回带有 Lottie Animation 的 JSX
//点赞按钮
<TouchableOpacity onPress={changeFavorite} style={{borderRadius: 50, marginRight: 16, marginTop: 16}}>
<MaterialIcons name="favorite" size={30} color={favorito == 1 ? 'red' : '#fff'}/></TouchableOpacity>
//更改收藏夹
async function changeFavorite() {
try {
await api.put(`favoritos/${local.id}`, {
local_id: local.id
}).then(res => {
setFavorito(res.data)
if(favorito === 0) {
console.log("like")
return (
<View style={{flex: 1, height: 300, width: 300, position:"absolute"}}>
<LottieView
source={require('../../assets/heart.json')}
resizeMode="cover"
autoPlay
/>
</View>
)
}
else {
console.log("deslike")
}
})
} catch (error) {
console.log(error)
}
}
解决方案
设置对您的 Lottie 的引用。
export default class App extends Component {
changeFavorite = () => {
this.Lottie.play(); //play it inside your function call
};
render() {
return (
<LottieView
autoPlay={false}
loop={false}
ref={(e) => {
this.Lottie = e; //set a reference variable
}}
...
/>
);
}
}
推荐阅读
- python - 一些列在缩放后变成了 NaN
- javascript - 用于排除一个特定单词的特定文件扩展名的文件的正则表达式
- ruby-on-rails - 在视图中访问设计 current_user 额外字段?
- python - 合并两个带有 id 的数据框
- android - 摆脱 AndroidManifest.xml 中不必要的权限
- google-apps-script - 谷歌应用脚本随机 - 例外:参数无效:名称 - 在命名重命名表时
- javascript - python抓取javascript不起作用和特定数据
- nginx - 弹性beantalk上http2的nginx配置
- sql-server - 根据另一个属性是否在列表中,将属性添加到视图
- javascript - 如何在猫鼬中更新数组中对象的属性