Definitelytyped: [@ أنواع / رد] createContext - لم يتم توفير وسيطة لـ "defaultValue".

تم إنشاؤها على ٢٠ يوليو ٢٠١٩  ·  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 فقط عندما لا يكون للمكون موفر مطابق فوقها في الشجرة.

لدي موفر مطابق أعلاه في الشجرة ، لذا يجب أن أكون قادرًا على إنشاء سياق دون تعيين قيمة افتراضية أو أكون مخطئًا؟

التعليق الأكثر فائدة

عدم وجود قيمة افتراضية يمنع إنشاء تشغيل الكتابة على الآلة الكاتبة الخاص بي من العمل. هل هناك أي طريقة لجعل هذا اختياري؟

ال 4 كومينتر

أنا أغلق هذه القضية في الوقت الحالي. إذا اعتقد شخص ما أن هذه مشكلة حقيقية ، فكن حراً في المساهمة.

عدم وجود قيمة افتراضية يمنع إنشاء تشغيل الكتابة على الآلة الكاتبة الخاص بي من العمل. هل هناك أي طريقة لجعل هذا اختياري؟

إذا كنت ترغب في تجميع التعليمات البرمجية الخاصة بك بدون قيمة افتراضية ، يمكنك بدئها بـ null .

export const AuthContext = React.createContext(null)

~ لم يعد الحل null مناسبًا لي. سوف أقدم قضية جديدة

تحرير: لا ، https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34854 يذكر السبب. آه حسنا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات