React 16.7 TypeError: (0 , _react.useState) 不是一个函数



错误:

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

我目前的反应版本:

   "react": "^16.7",
   "react-dom": "^16.7",

src/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 没有钩子

分辨率是降级到

   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",

就我而言,错误在于导入。我的IDE从导入"react/cjs/react.development"导入了useState钩子,它不适用于生产。

相关内容

  • 没有找到相关文章

最新更新