React Native 动画 setValue() 问题?

2024-06-23

实际上我正在尝试设置动画的值设定值() after 动画.timing()已完成并希望在循环动画中使用此更新的动画值。

//Initialising animation value=50
const leftAnim = useRef(new Animated.Value(50)).current 
useEffect(() => {
    Animated.timing(leftAnim,{
        toValue:360,
        duration:3000,
        easing:Easing.linear,
        useNativeDriver:false,
    }).start(({finished}) => {
        //Updating animation value=100
        leftAnim.setValue(100)
        //Animated API is not considering the setValue and starting the loop animation with the first value i.e 50 instead of 100
        Animated.loop(
            Animated.timing(leftAnim,{
                toValue:360,
                duration:5000,
                easing:Easing.linear,
                useNativeDriver:false
            })
        ).start()
    })
},[])

难道我做错了什么?有更好的方法吗?


您可以使用leftAnim.setOffset(nextStart)并相应地调整内环末端。零食博览会演示 https://snack.expo.dev/uyR0BtK0M

import React, { Component, useRef, useEffect, useState } from 'react';
import { Easing, StyleSheet, View, Animated, Button, Text } from 'react-native';

const start = 0;
const end = 100;

export default Anim = () => {
  const leftAnim = useRef(new Animated.Value(start)).current;
  const [curValue, setCurValue] = useState(start);

  useEffect(() => {
    leftAnim.addListener((v) => {
      setCurValue(v.value.toFixed(0));
    });

    Animated.timing(leftAnim, {
      toValue: end,
      duration: 5000,
      easing: Easing.linear,
      useNativeDriver: false,
    }).start(({ finished }) => {
      //setting value to 80
      leftAnim.setOffset(80);

      // increment only by 20, 80 + 20 = 100
      Animated.loop(
        Animated.timing(leftAnim, {
          toValue: end - 80,
          duration: 2000,
          easing: Easing.linear,
          useNativeDriver: false,
        })
      ).start();
    });
  }, [leftAnim]);
  return (
    <View style={styles.container}>
      <Animated.Image
        source={require('./assets/snack-icon.png')}
        style={{ width: 40, height: 40, transform: [{ translateY: leftAnim }] }}
      />

      <Text>Current Value: {curValue}</Text>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'start',
    alignItems: 'center',
    padding: 10,
    paddingTop: 50,
  },
  input: {
    height: 50,
    marginHorizontal: 15,
    backgroundColor: '#ededed',
    marginTop: 10,
    paddingHorizontal: 9,
  },
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native 动画 setValue() 问题? 的相关文章

  • Angular 2 TypeError:无法读取 null 的属性“animate”

    我正在使用 Chrome 51 和 Angular 2 rc4 并在加载我的 Angular 应用程序时在控制台中弹出以下错误 TypeError Cannot read property animate of null at e supp
  • JavaScript 变量带有一个我需要在 Html.ActionLink 中使用的 ID

    我的 jQuery 代码中有一个 JavaScript 变量 其中包含一个我需要在我的Html ActionLink但它不起作用 Html ActionLink Genomf r AnswerForm AnswerNKI new id go
  • 防止 Node.js 中的 SQL 注入

    是否有可能以与 PHP 具有防范 SQL 注入的预准备语句相同的方式防止 Node js 中的 SQL 注入 最好使用模块 如果是这样 怎么办 如果不 有哪些例子这可能会绕过我提供的代码 见下文 一些背景 我正在制作一个 Web 应用程序
  • 将值传递给映射函数 - CouchDB

    我想知道是否可以将值传递给 couchDB 设计文档中的映射函数 例如 在下面的代码中 可以传递用户输入的值并使用该值来运行地图函数 也许我可以传递用户UserName当他们登录时 然后根据地图功能显示视图 function doc if
  • html/js 中从右到左和/或从上到下的文本?

    如何在浏览器中为用户输入创建从右到左和从上到下的文本字段 有没有本地方法可以做到这一点 或者也许有解决方法 从上到下可能像日语或象形文字 对于 RTL 文本字段 您可以使用 HTMLdir属性 如 ime Vidas 已经提到的 或 wit
  • 将jQueryUI datepicker附加到div(显示位置错误)

    我在输入上使用 jQueryUI datepicker 默认情况下 jQueryUI 会附加 ui datepicker div to the body该文件的 有问题的输入位于屏幕上的 弹出 div 中 这意味着该 div 之外的任何点击
  • GraphQL 错误字段类型必须是输入类型,但得到:

    这是突变 const createNotebook mutationWithClientMutationId name CreateNotebook inputFields token type GraphQLString details
  • 在 Javascript 中实现 Zobrist 哈希

    我需要在 Javascript 中为国际象棋引擎实现 Zobrist 哈希 我想知道实现此目的的最佳方法是什么 现在 我不是计算机科学家 也从未上过正式的算法和数据结构课程 所以如果我在这方面有点偏离 我很抱歉 据我了解 我需要一个 64
  • jQuery onclick 隐藏其父元素[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想隐藏 li tag on a 使
  • 在 Bootstrap 选择器上使用 jQuery 取消选择选项

    我对一些 UI 元素使用 Bootstrap SelectPicker 它允许用户选择多个选项并将其呈现在段落标签中的屏幕上 他们还应该能够删除选定的选项 这是我的代码 用于将选定的选项渲染到屏幕上 以便每个选项旁边都会显示一个 X 单击它
  • 提交外部有 INPUT 的表单,并修改值后

    我有一个form 有几个
  • 脚本不会从nodejs应用程序中的ejs文件运行

    我正在尝试使用nodejs express mysql和ejs让网页显示图表 但我显然不明白ejs javascript等是如何工作的 我需要运行一个脚本来设置图表 来自 Chart js 模块 但它不会输出任何类型的图表 我尝试过的 将
  • 从组件刷新/重新加载 ember 路由

    我有一个组件 它实际上是一个模式对话框 当我完成该对话框并按 确定 按钮时 我想留在打开该对话框的停留页面上 这并不难 但问题是该对话框更改了数据 我通过 REST 调用获取数据 因此我需要刷新已经所在的路线以反映数据更改 因为我是从组件中
  • 过滤数据表中的行

    我目前的 JQuery 插件 DataTables 工作正常 并且我在页面顶部插入了一个按钮来进一步过滤列表 我还使用了 DataTables 内置的搜索栏 我希望按钮向下过滤表格 并只显示包含特定值的行 下面是我一直在做的事情 但似乎没有
  • Google Maps API - 调整大小会生成空白区域

    我正在研究一个看起来非常简单的功能 但却引起了一些头痛 我使用 GIS 并将其与 Google 地图集成 其中一位客户要求能够打开一个仅显示地图的单独弹出窗口 打开窗口不是问题 但当我尝试扩展包含地图的 IFrame 的宽度时 为了适应窗口
  • 为什么我的数据没有存储到我的 Firebase 实时数据库中?

    我正在尝试为网络应用程序制作一个注册页面 这会将数据发送到 firebase 数据库 我已阅读官方 firebase 文档并按照说明写入数据 但什么也不会写 在我的数据库控制台中 它显示的所有内容都是空 而不是我的数据 我没有收到控制台错误
  • React cloneElement 未设置键

    我正在构建一个动态生成键的表控件 我理解这可能不是一个好主意 我想键应该与其代表的数据唯一关联 否则 React 只能为我们生成唯一的 id 但无论哪种方式似乎没有设置按键 我不知道为什么 表中的行是用可以找到的函数生成的here http
  • 多个引导模式的滚动问题

    我有一个带有大量信息的模态页面 因此您需要滚动 该模式包含指向第二个模式的链接 When I 打开模态 1 单击链接打开模式 2 模式 1 保持在后台 然后关闭模式 2 以便我回到模式 1 modal 1 失去滚动 仍然有一个滚动条 但它不
  • 即使切换它时,hasClass 也始终返回 false

    我有以下代码
  • 将json数据从servlet传递到jsp到js文件

    我得到了这个创建 JSON 数据的 servlet 我想将此数据传递到一个 jsp 页面 该页面应该通过 InfoVis 工具包显示数据 servlet java JSONObject json new JSONObject JSONArr

随机推荐

  • 如何在 IntelliJ IDEA 中构建 OS X Java 应用程序包?

    我正在尝试在 IntelliJ IDEA 中为 mac 构建一个 Java 应用程序 苹果开发者文档说我需要做一个Java 应用程序包 http developer apple com library mac documentation J
  • 在 Mac OS X 上升级 Ruby

    我正在阅读 Programming Ruby 一书 并希望升级我计算机上的 Ruby 版本 我运行 Mac OS X Snow Leopard 并在命令行中执行 ruby v 显示我正在运行 Ruby 1 8 7 我安装了 MacPorts
  • 在 C++ 中返回浮点数组

    我目前有一个 C 中的 4x4 矩阵类 并将每个值存储为浮点数 Matrix4d Matrix4d const float m00 const float m01 const float m02 const float m03 const
  • Grails:在 gsp 中显示创建的图像

    我对 Grails 很陌生 所以这个问题可能有一个非常简单的答案 我正在尝试在 gsp 中显示动态创建的图像 图像不存储在数据库中 它是在控制器中动态创建的 我本质上拥有的是一个 gsp 它有一个接受一组用户输入的表单 requestGra
  • 带参数的 Laravel-4 路由被调用两次

    我注意到我正在使用 laravel 开发的应用程序的激活路线发生了奇怪的行为 并且经过几个小时的 xdebug 等调试后 我发现我的路线有时实际上被调用了两次 为了重现这种情况 我使用默认文件创建了一个全新的 Laravel 项目 并添加了
  • 如何更改 dplyr 链中数据第一行的列名称

    我尝试使用数据的第一行重命名列名称 使用第一行数据作为 r 中的列名称 https stackoverflow com questions 32054368 use first row data as column names in r 将
  • 我在绘制球体及其曲线时遇到问题

    我正在尝试在球体上绘制一条曲线 但无法同时绘制它们 我确定了一些要点欧几里得范数10对于我的曲线 以及绘制球体的其他一些点半径10 分别如下 曲线点 random numbers basevalues np linspace 0 9 0 9
  • 快速成功退出 C++,分配大量对象

    我正在寻找一种方法来快速退出已使用 C 类在内存中分配大量结构的 C 程序正确完成 但在程序中最后 返回 后 所有自动析构函数都会启动 问题是程序通过大量 C 类结构分配了大约 15GB 内存 并且此自动析构过程需要大约还需要 1 个小时才
  • 了解截断二十面体的几何形状,以进行渲染

    我正在尝试使用可点击区域来渲染像上面这样的截断二十面体Three js http stemkoski github io Three js js Three js 我找到了正二十面体的代码 var t 1 Math sqrt 5 2 var
  • 指定 Xaml 中开始标记和结束标记之间的属性

    考虑以下 Xaml
  • 逻辑应用 blob 触发器未在子文件夹上触发

    我指的是这个反馈 在子文件夹中添加文件时触发 Azure 存储 Blob 触发器 https feedback azure com forums 287593 logic apps suggestions 20164843 azure st
  • 使用cleartool findmerge 命令在clearcase 中自动合并

    我正在编写一个脚本来自动执行一些合并操作 我想使用以下命令来执行此操作 cleartool findmerge file name fver main branch name LATEST merge log NUL c Automatic
  • AttributeError:“SQLAlchemy”对象没有属性“模型”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 AttributeError sqlalchemy 对象没有属性 模型 有时会出现 ModuleNotFoundError 没有名
  • 将数据传递给 vue.js 中的组件

    我正在努力理解如何在 vue js 中的组件之间传递数据 我已经通读了几遍文档并查看了许多 vue 相关问题和教程 但我仍然不明白 为了解决这个问题 我希望能帮助完成一个非常简单的例子 在一个组件中显示用户列表 完成 单击链接 完成 时将用
  • 可变字体和常规字体有什么区别

    我正在阅读有关可变字体的内容 但我不明白这个概念 有 5 个注册轴 wght wdth ital slnt opsz 字体粗细已经预先存在 我们每天都会在 CSS 中使用它 那么可变字体和常规字体有什么区别呢 另外 如果我输入一系列font
  • 从哪个 Linux 内核/libc 版本开始,Java Runtime.exec() 在内存方面是安全的?

    在工作中 我们的目标平台之一是运行 Linux 的资源受限的迷你服务器 内核 2 6 13 基于旧 Fedora Core 的自定义发行版 该应用程序是用 Java Sun JDK 1 6 04 编写的 Linux OOM Killer 配
  • 如何改变TDateTimePicker的颜色?

    如何更改 a 的颜色TDateTimePicker A 日期和时间选择器可以有一种颜色 通常这是通过设置来完成的Color procedure TForm1 FormCreate Sender TObject begin DateTimeP
  • 将文档的文档 ID 添加到其自己的 Firestore 文档 - Swift 4

    如何将我刚刚添加到 firestore 数据库的文档的文档 ID 添加到该文档 我想这样做 以便当用户检索 乘车 对象并选择预订它时 我可以知道他们预订了哪些特定乘车 我面临的问题是 在创建文档 ID 之前 您无法获取文档 ID 因此将其添
  • Spring MVC 静态资源部分工作

    我有一个基本的目录应用程序 运行良好 只是它似乎有时只能找到我使用 mvc resources 标签配置的静态资源 我对主板的搜索发现了与处理程序映射相关的问题 但我的问题似乎有所不同 具体来说 当通过映射到 person 的方法调用 Pe
  • React Native 动画 setValue() 问题?

    实际上我正在尝试设置动画的值设定值 after 动画 timing 已完成并希望在循环动画中使用此更新的动画值 Initialising animation value 50 const leftAnim useRef new Animat