Reactjs 反应:无法从其他文件调用函数
我是一个新的反应和有角度的背景。一切正常,但当我试图检查firebase是否已初始化时,突然出现了以下错误:Reactjs 反应:无法从其他文件调用函数,reactjs,firebase,firebase-authentication,Reactjs,Firebase,Firebase Authentication,我是一个新的反应和有角度的背景。一切正常,但当我试图检查firebase是否已初始化时,突然出现了以下错误: TypeError: _assets_Services__Firebase__WEBPACK_IMPORTED_MODULE_11__.default.isInitialised is not a function 以下是我的App.js的相关片段: import Firebase from './assets/Services/Firebase'; function App() {
TypeError: _assets_Services__Firebase__WEBPACK_IMPORTED_MODULE_11__.default.isInitialised is not a function
以下是我的App.js的相关片段:
import Firebase from './assets/Services/Firebase';
function App() {
const [isLoggedIn, setLogin] = useState(true)
const [firebaseInitialized, setFirebaseInitialized] = useState(true)
useEffect(() => {
Firebase.isInitialised().then(val => {
setFirebaseInitialized(val)
})
})
下面是Firebase.js:
class Firebase {
constructor() {
app.initializeApp(firebaseConfig);
this.auth = app.auth();
this.db = app.firestore();
}
isInitialized() {
return new Promise(resolve => {
this.auth.onAuthStateChanged(resolve)
})
}
我做了一点调查,发现有些人也有同样的问题,因为版本不匹配。
下面是my package.json中的一个片段:
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.1",
您必须从
Firebase
类创建一个实例,然后才能访问其方法
const firebase = new Firebase();
firebase.isInitialized()
除非将i初始化为静态
static isInitialized() {
return new Promise(resolve => {
this.auth.onAuthStateChanged(resolve)
})
}
那么你可以这样称呼它
Firebase.isInitialized()
更新
你的问题是打字错误,你用i初始化
来称呼它,而i初始化
应该是i初始化
,但仍然不走运。创建实例后,它仍然显示它不是一个函数。TypeError:firebase.IsInitialized不是函数。即使尝试将其定义为静态,它仍然显示以前的错误。因为它返回一个承诺,所以您需要使用然后。你在用它吗<代码>firebase.IsInitialized()。然后(响应=>console.log(响应))代码>是<代码>Firebase.IsInitialized()。然后(val=>{setFirebaseInitialized(val)})
导出了它吗<代码>导出默认Firebase
因此问题是输入错误,isInitialized=>isInitialized