React Native Reanimated:“AnimatedNode<number>”类型的参数不可分配给“number”类型的参数.ts(2345)

问题描述

我需要使用 React Native Reanimated(https://www.npmjs.com/package/react-native-reanimated) 创建一个抽屉动画。

更新前插值方法使用 2 个参数正常工作。 像

一样使用
interpolate(
   props.progress,{
    [0,1],[1,0.85],Extrapolate.CLAMP
   }
);

但更新后,该方法会带3到4个参数

interpolate(
   props.progress,[0,Extrapolate.CLAMP
);

现在我得到如下错误

Argument of type 'Animatednode<number>' is not assignable to parameter of type 'number'

我当前的 React Native Reanimated 版本是 2.1.0

如下所示通过 drawerContent(DrawerContentComponentProps) 传递道具

drawerContent={(props) => {
            const scale = interpolate(
              props.progress,Extrapolate.CLAMP
            );

            const borderRadius = interpolate(
              props.progress,10],Extrapolate.CLAMP
            );

            screenStyle = {
              transform: [
                {
                  scaleY: scale,},],borderRadius,};
            return <SideBar {...props} user={user} />;
          }}
    ```

解决方法

在 Reanimated 2 中,interpolate 被重命名为 interpolateNode。所以我改变了我的代码

...
const scale = interpolateNode(props.progress,{
 inputRange: [0,1],outputRange: [1,0.85],extrapolate: Extrapolate.CLAMP,});

const borderRadius = interpolateNode(props.progress,10],});
...

而且它工作正常

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...