هل هناك أي سبب لكون الوسيطة 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 فقط عندما لا يكون للمكون موفر مطابق فوقها في الشجرة.
لدي موفر مطابق أعلاه في الشجرة ، لذا يجب أن أكون قادرًا على إنشاء سياق دون تعيين قيمة افتراضية أو أكون مخطئًا؟
أنا أغلق هذه القضية في الوقت الحالي. إذا اعتقد شخص ما أن هذه مشكلة حقيقية ، فكن حراً في المساهمة.
عدم وجود قيمة افتراضية يمنع إنشاء تشغيل الكتابة على الآلة الكاتبة الخاص بي من العمل. هل هناك أي طريقة لجعل هذا اختياري؟
إذا كنت ترغب في تجميع التعليمات البرمجية الخاصة بك بدون قيمة افتراضية ، يمكنك بدئها بـ null
.
export const AuthContext = React.createContext(null)
~ لم يعد الحل null
مناسبًا لي. سوف أقدم قضية جديدة
تحرير: لا ، https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34854 يذكر السبب. آه حسنا.
التعليق الأكثر فائدة
عدم وجود قيمة افتراضية يمنع إنشاء تشغيل الكتابة على الآلة الكاتبة الخاص بي من العمل. هل هناك أي طريقة لجعل هذا اختياري؟