有什么理由说明为什么这里的参数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>
);
};
文档网址: https :
仅当组件在树中没有匹配的 Provider 时才使用 defaultValue 参数。
我在树上有一个匹配的 Provider,所以我应该能够在不设置默认值的情况下创建上下文,或者我错了?
我现在关闭这个问题。 如果有人认为这是一个真正的问题,那么请自由贡献。
没有默认值会使我的打字稿运行构建无法正常工作。 有没有办法让这个可选?
如果你想在没有默认值的情况下编译你的代码,你可以用null
初始化它。
export const AuthContext = React.createContext(null)
~ null
解决方案不再适用于我。 我会提交一个新的问题。~
编辑:不, https :
最有用的评论
没有默认值会使我的打字稿运行构建无法正常工作。 有没有办法让这个可选?