Definitelytyped: [@ types / response] createContext - Аргумент для defaultValue не указан.

Созданный на 20 июл. 2019  ·  4Комментарии  ·  Источник: DefinitelyTyped/DefinitelyTyped

Есть ли причина, по которой аргумент defaultValue здесь не является необязательным?

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-адрес документов: https://reactjs.org/docs/context.html#reactcreatecontext

Аргумент defaultValue используется только в том случае, если компонент не имеет соответствующего Provider над ним в дереве.

У меня есть соответствующий поставщик выше в дереве, поэтому я могу создать контекст без установки значения по умолчанию, или я ошибаюсь?

Самый полезный комментарий

Отсутствие значения по умолчанию мешает моей сборке машинописного текста работать. Есть ли способ сделать это необязательным?

Все 4 Комментарий

Я пока закрываю этот вопрос. Если кто-то думает, что это реальная проблема, не стесняйтесь вносить свой вклад.

Отсутствие значения по умолчанию мешает моей сборке машинописного текста работать. Есть ли способ сделать это необязательным?

Если вы хотите скомпилировать свой код без значения по умолчанию, вы можете запустить его с помощью null .

export const AuthContext = React.createContext(null)

~ Решение null больше не работает для меня. Запишу новый выпуск ~

Изменить: нет, https://github.com/DefinitiTyped/DefinitiTyped/pull/34854 упоминает, почему. Ах хорошо.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

jrmcdona picture jrmcdona  ·  3Комментарии

JWT
svipas picture svipas  ·  3Комментарии

variousauthors picture variousauthors  ·  3Комментарии

Zzzen picture Zzzen  ·  3Комментарии

fasatrix picture fasatrix  ·  3Комментарии