“Firebase”类型不能分配给“null”类型。TS2322

gli*_*ard 0 javascript firebase reactjs

我正在关注本教程:https : //www.robinwieruch.de/complete-firebase-authentication-react-tutorial

我正在使用以下代码在 Firebase Context 提供程序处执行此步骤:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
import App from './components/App';
import Firebase, { FirebaseContext } from './components/Firebase';

ReactDOM.render(
  <FirebaseContext.Provider value={new Firebase()}>
    <App />
  </FirebaseContext.Provider>,
  document.getElementById('root'),
);
serviceWorker.unregister();
Run Code Online (Sandbox Code Playgroud)

我想在打字稿中这样做只是为了建立我的印章,但value={new Firebase()}我收到了错误Type 'Firebase' is not assignable to type 'null'. TS2322

我完全确定如何编辑值数据类型分配,因为它似乎是由 React 本身设置的?

VSCode 中值数据类型的截图

这是上下文提供程序的代码:

import React from 'react';

const FirebaseContext = React.createContext(null);

export default FirebaseContext;
Run Code Online (Sandbox Code Playgroud)

Aar*_*ers 10

在您的 firebase 上下文中,您需要设置类型,您any现在应该可以使用,直到您弄清楚 Firebase 返回的特定类型。

const FirebaseContext = React.createContext<any|null>(null);
Run Code Online (Sandbox Code Playgroud)