首页 > 解决方案 > React Native Reanimated 有效地获取节点数组子集的最大值和最小值

问题描述

Reanimated 中是否有 API 可以在值数组的一部分上运行 proc?

我希望使用react-native-reanimated动画来为可能很大且不断变化的数据集的视图设置动画。为了正确显示数据,我必须获取 2 个索引之间数据的最大值和最小值。理想情况下,我希望此逻辑使用 Reanimated API 在本机线程上运行,以实现更好的性能,因为索引将通过 Pan Gesture 更改。

这可以通过为每个数据点创建一个最大/最小条件节点来完成。但是,这似乎效率很低,因为数据集中的每个值都需要有一个最大值和最小值条件。这是这个逻辑的一个例子

data.reduce(
      (acc, dataPoint) =>
        max(
          acc,
          cond(
            and(
              greaterOrEq(this.indexLeftBoundary, dataPoint.index),
              lessOrEq(this.indexRightBoundary, dataPoint.index),
            ),
            dataPoint.value,
            Number.MIN_SAFE_INTEGER,
          ),
        ),
      Number.MIN_SAFE_INTEGER,
    );

随着数据集的增长,这种方法将继续变得更加资源密集。

标签: react-nativereact-native-androidreact-native-reanimated

解决方案


推荐阅读