reactjs - 反应错误:元素类型无效:期望字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象
问题描述
我从 React 收到以下错误,并且我的页面没有加载:Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
当我import
在 React 组件顶部使用声明时会发生这种情况,例如import React from "react"
.
根据 Stack Overflow 上的这个问题,答案是更改module.exports = ComponentName
为export default ComponentName
,但在我的情况下,两段代码都会抛出相同的错误。
有人可以帮我找出导致错误的原因吗?
注册.jsx
import React from "react";
const Register = () => {
return (
<div>registration page</div>
)
}
export default Register
webpack.js
const path = require('path');
module.exports = {
mode: 'production',
context: path.join(__dirname, './'),
entry: './app/app.jsx',
output: {
path: path.join(__dirname, 'public'),
filename: 'bundle.js',
},
resolve: {
extensions: ['.js', '.jsx'],
},
module: {
rules: [
{
test: /\.jsx?$/,
// loader: 'jsx-loader',
use: {
loader: 'babel-loader',
},
exclude: /node_modules/,
include: path.join(__dirname, 'app'),
},
],
},
};
.babelrc
{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}
解决方案
您可能导入不正确。由于您默认导出,因此将导入更改为:
import { Register } from '<some_path>/Register';
至:
import Register from '<some_path>/Register';
或 CommonJS 风格:
const Register = require('<some_path>/Register');
至
const Register = require('<some_path>/Register').default;
推荐阅读
- neo4j - Neo4j:作为节点的事件序列不起作用
- xaml - 该属性不会在 UI 上持续更新
- python - 努力安装 impacket
- javascript - 满足条件后在 Yup 中使用自定义验证测试,循环依赖问题
- ajax - 使用 API 请求中的 LAN 和长详细信息更新传单标记
- docker - 如果我尝试在内部网络中运行,为什么“端口已分配”?
- pandas - 通过首先测试条件搜索另一个数据框来填充数据框
- python - 将 python 列表中的值递增 6 直到达到条件
- python - 如何使用 sympy 操作求和和下标来求解 ODE (Frobenius)?
- javascript - 尝试将用户输入的每个单词包装到 div 中的 contenteditable="true" 元素中