我正在构建一个React应用程序,并试图更新一些JavaScript函数以使用ES6析构箭头语法。
Index.js文件:
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
function TestMe() {
const name = "User";
const message = "Welcome!";
return (
<div>
<Hello name={name} />
<Message message={message} />
</div>
);
}
ReactDOM.render(<TestMe/>, document.querySelector('#root'));
const Hello = ({ name }) => (
<span>Hello, {name}</span>
);
function Message(props) {
return (
<div className="message">
{props.message}
</div>
);
}消息函数将呈现,但Hello函数将在浏览器中抛出以下错误(在成功构建之后):
“元素类型无效:期望字符串(用于内置组件)或类/函数(用于复合组件),但得到:未定义。您可能忘记从定义在其中的文件导出组件,或者您可能混淆了默认导入和命名导入。
检查TestMe的呈现方法。""“
这是我的package.json,以防万一:
{
"name": "jsx-exercises",
"version": "0.1.0",
"private": true,
"dependencies": {
"eslint": "^5.6.0",
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-scripts": "2.1.2"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}我为什么要犯这个错误?
发布于 2018-12-29 14:37:59
您必须将Hello移动到文件的顶部,因为TestMe看不到这个const。函数javascript无论如何都可以看到,因为它是函数声明
https://stackoverflow.com/questions/53970407
复制相似问题