【问题标题】:Type 'Firebase' is not assignable to type 'null'. TS2322“Firebase”类型不可分配给“null”类型。 TS2322
【发布时间】:2019-12-23 06:09:46
【问题描述】:

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

我正处于使用以下代码的 Firebase 上下文提供程序的步骤:

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();

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

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

这是上下文提供者的代码:

import React from 'react';

const FirebaseContext = React.createContext(null);

export default FirebaseContext;

【问题讨论】:

  • 你在 firebaseContext 中设置了什么值?
  • @farooq 我想我对 React/Typescript 的了解不够,不知道如何设置该值?
  • src/components/Firebase/context.js 里面,有什么?你能用代码修改你的问题吗?
  • @farooq 刚刚添加了它。

标签: javascript reactjs firebase


【解决方案1】:

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

const FirebaseContext = React.createContext<any|null>(null);

【讨论】:

  • 谢谢!那行得通!那么允许你设置值数据类型吗?我不知道。我将不得不深入研究 TS 手册以获得该解释。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 2020-12-27
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 2018-10-26
  • 2017-04-10
相关资源
最近更新 更多