我正在尝试使用 react 钩子导出正常的功能组件,但出现此错误。
类型错误:对象(...(不是函数
当我删除钩子并在没有任何状态的情况下导出它时,它可以工作。导出与类组件相同的代码也可以。
import React,{ useState } from 'react';
const Mycomponent = () => {
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
export default Mycomponent;
这是我导入和使用功能组件的方式。
import Mycomponent from './mycomponet';
class MYClassComponent extends Component {
render() {
return (
<Mycomponent />
}
}
我正在使用react 16.6.3
并使用create-react-app
.
我正在使用反应 16.6.3...
这就是问题所在。在 v16.8 中添加了钩子,因此代码中的useState
undefined
.
(这是转译隐藏错误的情况之一[如果您需要支持较旧的环境,您没有太多选择]。如果这是一个原生的import
语句,它就会失败,并出现一个有用的错误,说 React 没有一个名为 export useState
。但是当使用 CJS 或 AMD 版本的 React 时,你的代码会被转换为var useState = React.useState;
的东西,所以它不会出错,它只是给你undefined
——这不是一个函数。:-) )