LayoutAnimation 在任何情况下都可以工作吗?

Cod*_*rer 6 layout-animation reactjs react-native

LayoutAnimation 是 React Native 的一部分,它在渲染视图时自动为组件设置动画。

官方文档在这里:

https://reactnative.dev/docs/layoutanimation

但是,文档中的示例不起作用。示例中应该设置动画的对象只是从起始位置跳到结束位置。

这是文档中似乎没有动画的 Snacks 之一的示例:

https://snack.expo.io/91MUQd5IH

这将导致人们得出结论,该 API 只是不受支持或不再起作用。

是不是 Layout Animation 就不起作用了?或者,如果它在某些情况下确实有效,请分享一个包含工作 Snack / Gist 的链接,其中包含一个非常简单但有效的 LayoutAnimation 示例。

更新:LayoutAnimation 可能不支持 web。有没有人对此有任何了解,或者谁能向读者介绍文档中的解释?

tud*_*ely 2

目前,react-native-web 中不正确支持 LayoutAnimation。您可以在这里看到:https://github.com/necolas/react-native-web#modules和这里https://github.com/necolas/react-native-web/issues/1613https://github .com/necolas/react-native-web/issues/1056。目前这似乎不是该项目的优先事项,因此我不指望它得到实施。

在 iOS/Android 上,情况就不同了。如果我们看这里: https: //reactnative.dev/docs/layoutanimation/,你实际上可以通过按播放并选择 iOS 来看到它正常工作。

在 Android 上我们也有支持,但它可能无法工作/崩溃。如果你查看react-native 的开放问题,你会发现其中很多都提到了 LayoutAnimation 和 Android 的问题。例如,它在 Android 上的某些条件下崩溃:https://github.com/facebook/react-native/issues/27552https://github.com/facebook/react-native/issues/29919

我不建议使用 LayoutAnimation,尤其是在 Android 上,因为它是高度实验性的,可能会在没有警告的情况下在某些设备上崩溃。

如果你想尝试一些更有趣、性能更好的动画,我建议你尝试使用 ReactNative 的 Animated API 或更新的React-native-reanimated,它更快、更现代,但仍处于 alpha 阶段(我说的是当前的、 v2,版本)。