J'utilise ceci dans ma pile de navigation :

  <NavigationStack.Screen
                    name="UserMenu"
                    component={UserMenu}
                    options={{
                      headerShown: false,
                      cardStyleInterpolator: forSlideFromLeft,
                    }}
                  />
const forSlideFromLeft = (props) => {
  const { current, layouts } = props;
  console.log('PROPS FROM USER MENU', current)
  console.log('PROPS FROM USER MENU2', layouts)
  const translateX = current.progress.interpolate({
    inputRange: [0, 1],
    outputRange: [-layouts.screen.width, 0],
  });
  if (props.index === 2) {
    return {
      cardStyle: {
        transform: [{ translateX }],
      },
    };
  } else {
    return {};
  }
};

Mais j'obtiens une erreur sur props que Parameter 'props' implicitly has an 'any' type. Quel pourrait être son type. Si je infer from usage dans VS Code, j'obtiens ceci :

(props: { index?: any; current?: any; layouts?: any; })

Mais je ne veux pas utiliser les types any. Si j'imprime les valeurs current et layout sur la console, j'obtiens quelque chose comme ceci :

Courant:

{progress: AnimatedInterpolation}
progress: AnimatedInterpolation {_listeners: {…}, _children: Array(0), _parent: AnimatedValue, _config: {…}, _interpolation: ƒ, …}
__proto__: Object

Disposition:

{screen: {…}}
screen: {width: 411.4285583496094, height: 707.4285888671875}
__proto__: Object

Comment puis-je réparer cela? Quel serait le type approprié à utiliser ici ?

0
Jnl 14 sept. 2020 à 11:52

1 réponse

Meilleure réponse

Vous pouvez importer le type StackCardInterpolationProps depuis react-navigation

https://github.com/react-navigation/react-navigation/blob/main/packages/stack/src/types.tsx

1
Alireza Esfahani 14 sept. 2020 à 10:45