javascript - React 16.7 TypeError : (0 , _react.useState) 不是函数

标签 javascript reactjs react-hooks

错误:

  TypeError: (0 , _react.useState) is not a function

我目前的 react 版本:
   "react": "^16.7",
   "react-dom": "^16.7",

源代码/App.js:
  import {memo, useState} from 'react'
  export default memo(() => {
     useState(false)
     return 'OK'
  })

src/App.test.js:
   import React from 'react'
   import App from './App'
   import renderer from 'react-test-renderer'
   it('renders without crashing', () => {
        const tree = renderer.create(<App />).toJSON()
        expect(tree).toMatchSnapshot()
   })

如何解决这个问题?

最佳答案

根本原因是react V16.7没有钩子(Hook)
决议是降级到

   npm i react@next react-dom@next 
截至 2018 年 12 月 20 日是 16.7.0-alpha.2:
    yarn add react@next react-dom@next
然后丢失测试渲染器:
 import React from 'react'
 import ReactDOM from 'react-dom'
 import App from './App'
 it('renders without crashing', () => {
    const div = document.createElement('div')
    ReactDOM.render(<App />, div)
    ReactDOM.unmountComponentAtNode(div)
 })
这是 package.json 应该有的:
  "react": "^16.7.0-alpha.2",
  "react-dom": "^16.7.0-alpha.2",

关于javascript - React 16.7 TypeError : (0 , _react.useState) 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53892733/

相关文章:

javascript - 如何让 useEffect() 表现得像 componentDidMount() ?

javascript - Express js 的 Ajax 发布响应不断抛出错误

javascript - JavaScript 中两个字符串之间的常用字母

javascript - 即时创建 React 上下文菜单

reactjs - 在React中使用axios从内连接表获取数据时出现问题

javascript - react : useEffect vs useMemo vs useState

javascript - 如何将 "string"转换为 "timestamp without time zone"

javascript - 用于单元测试的假文件放置事件

reactjs - react-hook-form reset 不适用于 Controller + antd

reactjs - 复杂状态下使用 Hook useReducer 的正确方法