问题描述
我需要使用 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],});
...
而且它工作正常