рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рддрд░реНрдХ 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
рдбрд┐рдлреЙрд▓реНрдЯрд╡реИрд▓реНрдпреВ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рдШрдЯрдХ рдХреЗ рдкрд╛рд╕ рдкреЗрдбрд╝ рдореЗрдВ рдЗрд╕рдХреЗ рдКрдкрд░ рдПрдХ рдорд┐рд▓рд╛рди рдкреНрд░рджрд╛рддрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдкреЗрдбрд╝ рдореЗрдВ рдКрдкрд░ рдПрдХ рдорд┐рд▓рд╛рди рдкреНрд░рджрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрджрд░реНрдн рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ?
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореБрджреНрджрд╛ рд╣реИ рддреЛ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд░рд╣реЗрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдирд╣реАрдВ рд╣реЛрдиреЗ рд╕реЗ рдореЗрд░реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рди рдмрд┐рд▓реНрдб рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ null
рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
export const AuthContext = React.createContext(null)
~ null
рд╕рдорд╛рдзрд╛рди рдЕрдм рдореЗрд░реЗ рдХрд╛рдо рдирд╣реАрдВ рдЖрддрд╛ред рдореИрдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рджрд░реНрдЬ рдХрд░реВрдВрдЧрд╛ред~
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдирд╣реАрдВ, https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34854 рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВред рдареАрдХ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдирд╣реАрдВ рд╣реЛрдиреЗ рд╕реЗ рдореЗрд░реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рди рдмрд┐рд▓реНрдб рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?