Definitelytyped: [@types/react] createContext – Argumen untuk 'defaultValue' tidak disediakan.

Dibuat pada 20 Jul 2019  ·  4Komentar  ·  Sumber: DefinitelyTyped/DefinitelyTyped

Apakah ada alasan mengapa argumen defaultValue tidak opsional di sini?

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 dokumen: https://reactjs.org/docs/context.html#reactcreatecontext

Argumen defaultValue hanya digunakan ketika komponen tidak memiliki Penyedia yang cocok di atasnya di pohon.

Saya memiliki Penyedia yang cocok di atas di pohon, jadi saya harus dapat membuat konteks tanpa menetapkan nilai default atau saya salah?

Komentar yang paling membantu

Tidak memiliki nilai default membuat skrip run build saya tidak berfungsi. Apakah ada cara untuk membuat ini opsional?

Semua 4 komentar

Saya menutup masalah ini untuk saat ini. Jika seseorang berpikir ini adalah masalah nyata, maka bebaslah untuk berkontribusi.

Tidak memiliki nilai default membuat skrip run build saya tidak berfungsi. Apakah ada cara untuk membuat ini opsional?

Jika Anda ingin mengkompilasi kode Anda tanpa nilai default, Anda dapat memulainya dengan null .

export const AuthContext = React.createContext(null)

~Solusi null tidak lagi berfungsi untuk saya. Saya akan mengajukan masalah baru.~

Sunting: tidak, https://github.com/DefinitelyTyped/DefinitelyTyped/pull/34854 menyebutkan alasannya. baiklah.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat