我开始使用react js,构建我的第一个组件我遇到了这个错误
"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined."
我正在使用的编辑器是2017年的visual studio。
webpack.config.js的代码是
module.exports = {
context: __dirname,
entry: "./app.js",
output: {
path: __dirname + "/dist",
filename: "bundle.js"
},
watch: true,
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use:
{
loader: 'babel-loader',
options: {
presets: ['babel-preset-env', 'babel-preset-react', ]
}
}
}
]
}
}
app.js
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
<Button />,
document.getElementById('root')
);
class Button extends React.Component {
render() {
return (<button>42</button>);
}
}
我正在渲染的页面是index.cshtml
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index test</h2>
<div id="root"></div>
@section scripts{
<script src="~/Scripts/React/dist/bundle.js"></script>
}
在我对app.js进行更改后,下一步是进入cmd提示符并执行npm运行webpack。
感谢您的帮助
答案 0 :(得分:2)
您在声明之前使用该组件。 这不起作用,因为javascript类不会被提升。 这应该工作
import React from 'react';
import ReactDOM from 'react-dom';
class Button extends React.Component {
render() {
return (<button>42</button>);
}
}
ReactDOM.render(
<Button />,
document.getElementById('root')
);