reactjs TypeError:使用钩子时,Object(..) 不是一个函数



我正在尝试使用 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  ——这不是一个函数。:-) )

相关内容

  • 没有找到相关文章