Definitelytyped: [@types/react] createContext – Un argument pour 'defaultValue' n'a pas été fourni.

Créé le 20 juil. 2019  ·  4Commentaires  ·  Source: DefinitelyTyped/DefinitelyTyped

Y a-t-il une raison pour laquelle l'argument defaultValue n'est pas facultatif ici ?

import * as React from 'react';
import * as firebase from 'firebase/app';

interface AuthProps {
  children: any;
}
interface AuthState {
  user: firebase.User | null;
}
interface AuthContextProps extends AuthState {
  updateUser(user: firebase.User | null): void;
}

export const AuthContext = React.createContext<AuthContextProps>(); // <-- ERROR HERE!

// export const AuthConsumer = AuthContext.Consumer;
export const AuthProvider = (props: AuthProps) => {
  const [state, setState] = React.useState<AuthState>({
    user: null,
  });

  const updateUser = (user: firebase.User | null) => setState({ user });

  return (
    <AuthContext.Provider
      value={{
        updateUser,
        user: state.user,
      }}
    >
      {props.children}
    </AuthContext.Provider>
  );
};

URL des documents : https://reactjs.org/docs/context.html#reactcreatecontext

L'argument defaultValue n'est utilisé que lorsqu'un composant n'a pas de fournisseur correspondant au-dessus de lui dans l'arborescence.

J'ai un fournisseur correspondant ci-dessus dans l'arborescence, je devrais donc pouvoir créer un contexte sans définir de valeur par défaut ou je me trompe ?

Commentaire le plus utile

Ne pas avoir de valeur par défaut empêche ma construction d'exécution de script de fonctionner. Y a-t-il un moyen de rendre cela facultatif?

Tous les 4 commentaires

Je clos ce sujet pour l'instant. Si quelqu'un pense que c'est un vrai problème, alors soyez libre de contribuer.

Ne pas avoir de valeur par défaut empêche ma construction d'exécution de script de fonctionner. Y a-t-il un moyen de rendre cela facultatif?

Si vous souhaitez compiler votre code sans valeur par défaut, vous pouvez l'initialiser avec null .

export const AuthContext = React.createContext(null)

~La solution null ne fonctionne plus pour moi. Je vais déposer un nouveau problème.~

Edit: non, https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34854 mentionne pourquoi. Et bien.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

JudeAlquiza picture JudeAlquiza  ·  3Commentaires

fasatrix picture fasatrix  ·  3Commentaires

JWT
svipas picture svipas  ·  3Commentaires

lilling picture lilling  ·  3Commentaires

Zzzen picture Zzzen  ·  3Commentaires