Javascript 元素类型无效:请检查提供程序的呈现方法(React Native)
我与react一起为一个学校项目工作,创建一个应用程序。但目前我面临着这个错误的问题。我不能告诉你为什么会这样。它是Firebase身份验证登录的一部分 ×错误:元素类型无效:应为字符串(对于内置 组件)或类/函数(用于复合组件),但得到: 未定义。您可能忘记了从文件中导出组件 它是在中定义的,或者您可能混淆了默认导入和命名导入 检查Javascript 元素类型无效:请检查提供程序的呈现方法(React Native),javascript,react-native,Javascript,React Native,我与react一起为一个学校项目工作,创建一个应用程序。但目前我面临着这个错误的问题。我不能告诉你为什么会这样。它是Firebase身份验证登录的一部分 ×错误:元素类型无效:应为字符串(对于内置 组件)或类/函数(用于复合组件),但得到: 未定义。您可能忘记了从文件中导出组件 它是在中定义的,或者您可能混淆了默认导入和命名导入 检查提供程序的呈现方法 × App.js import React from 'react'; import { render } from 'react-dom';
提供程序的呈现方法
×
App.js
import React from 'react';
import { render } from 'react-dom';
import Providers from './navigation';
const App = () => {
return(
<Providers />
)
}
export default App;
从“React”导入React;
从'react dom'导入{render};
从“/navigation”导入提供程序;
常量应用=()=>{
返回(
)
}
导出默认应用程序;
下面是提供程序函数
import React from 'react';
import AuthProvider from './AuthProvider';
import Routes from './Routes';
const Providers = () => {
return (
<AuthProvider>
<Routes />
</AuthProvider>
);
}
export default Providers;
从“React”导入React;
从“/AuthProvider”导入AuthProvider;
从“./Routes”导入路由;
常量提供程序=()=>{
返回(
);
}
导出默认提供者;
这是我的AuthProvider
import React, {createContext, useState} from 'react';
import auth from '@react-native-firebase/auth';
export const AuthContext = createContext();
export const AuthProvider = ({children}) => {
const [user, setUser] = useState(null);
return (
<AuthContext.Provider
value={{
user,
setUser,
login: async (email, password) => {
try {
await auth().signInWithEmailAndPassword(email, password);
} catch (e) {
console.log(e);
}
},
register: async (email, password) => {
try {
await auth().createUserWithEmailAndPassword(email, password);
} catch (e) {
console.log(e);
}
},
logout: async () => {
try {
await auth().signOut();
} catch (e) {
console.log(e);
}
},
}}>
{children}
</AuthContext.Provider>
);
};
import React,{createContext,useState}来自“React”;
从'@react native firebase/auth'导入身份验证;
export const AuthContext=createContext();
导出常量AuthProvider=({children})=>{
const[user,setUser]=useState(null);
返回(
{
试一试{
等待auth()。使用email和password(电子邮件,密码)登录;
}捕获(e){
控制台日志(e);
}
},
注册:异步(电子邮件、密码)=>{
试一试{
等待auth().createUserWithEmailAndPassword(电子邮件,密码);
}捕获(e){
控制台日志(e);
}
},
注销:异步()=>{
试一试{
等待身份验证()。注销();
}捕获(e){
控制台日志(e);
}
},
}}>
{儿童}
);
};
您正在将AuthProvider
导出为命名导出
像这样尝试从“/AuthProvider”导入{AuthProvider}代码>检查输入错误,如将im更改为I am,以提高可读性。