ここで引数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 :
defaultValue引数は、コンポーネントのツリー内でその上に一致するプロバイダーがない場合にのみ使用されます。
上記のツリーに一致するプロバイダーがあるので、デフォルト値を設定せずにコンテキストを作成できるはずです。それとも間違っていますか?
私は今のところこの問題を閉じています。 これが本当の問題だと誰かが思ったら、自由に貢献してください。
デフォルト値がないため、typescript実行ビルドが機能しません。 これをオプションにする方法はありますか?
デフォルト値なしでコードをコンパイルしたい場合は、 null
初期化できます。
export const AuthContext = React.createContext(null)
〜 null
ソリューションは機能しなくなりました。 新しい問題を提出します。〜
編集:いいえ、 https :
最も参考になるコメント
デフォルト値がないため、typescript実行ビルドが機能しません。 これをオプションにする方法はありますか?