Javascript reactjs TypeError:使用挂钩时,对象(…)不是函数
我试图使用react钩子导出一个正常的功能组件,但是我得到了这个错误 TypeError:对象(…)不是函数 当我移除钩子并导出它时,它没有任何状态。导出与类组件相同的代码也有效Javascript reactjs TypeError:使用挂钩时,对象(…)不是函数,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我试图使用react钩子导出一个正常的功能组件,但是我得到了这个错误 TypeError:对象(…)不是函数 当我移除钩子并导出它时,它没有任何状态。导出与类组件相同的代码也有效 import React,{ useState } from 'react'; const Mycomponent = () => { const [count, setCount] = useState(0); return ( <div> <p>You
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 React,{useState}来自“React”;
常量Mycomponent=()=>{
const[count,setCount]=useState(0);
返回(
您单击了{count}次
设置计数(计数+1)}>
点击我
);
}
导出默认Mycomponent;
下面是我如何导入和使用功能组件
import Mycomponent from './mycomponet';
class MYClassComponent extends Component {
render() {
return (
<Mycomponent />
}
}
从“/mycomponet”导入Mycomponent;
类MYClassComponent扩展了组件{
render(){
返回(
}
}
我正在使用react 16.6.3
和创建react应用程序
我正在使用react 16.6.3
这就是问题所在。挂钩是在v16.8中添加的,因此代码中的useState
是未定义的
(这是传输向您隐藏错误的时候之一[如果需要支持较旧的环境,您没有太多选择]。如果这是一个本机的import
语句,它会失败,并出现一个有用的错误,说明React没有名为导出的useState
。但是当使用React的CJS或AMD版本时,您的代码会转换为执行某项操作var useState=React.useState;
,因此它不会出错,它只会为您提供未定义
-这不是一个函数。:-)您使用的绑定器和绑定器设置是什么?编译/传输的代码是什么样子的?您是否验证了useState
实际上是一个函数?您使用的是React的哪个版本(和分发文件)?我使用的是React16.6
和usedcreat React app
@saurabh-React挂钩从v16.8版开始提供。