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

Hem*_*ari 3 javascript reactjs react-hooks

错误:

  TypeError: (0 , _react.useState) is not a function
Run Code Online (Sandbox Code Playgroud)

我目前的反应版本:

   "react": "^16.7",
   "react-dom": "^16.7",
Run Code Online (Sandbox Code Playgroud)

源代码/App.js:

  import {memo, useState} from 'react'
  export default memo(() => {
     useState(false)
     return 'OK'
  })
Run Code Online (Sandbox Code Playgroud)

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()
   })
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

Hem*_*ari 6

根本原因是react V16.7没有hook

决议是降级到

   npm i react@next react-dom@next 
Run Code Online (Sandbox Code Playgroud)

截至 2018/12/20 是 16.7.0-alpha.2:

    yarn add react@next react-dom@next
Run Code Online (Sandbox Code Playgroud)

然后丢失测试渲染器:

 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)
 })
Run Code Online (Sandbox Code Playgroud)

这是 package.json 应该有的:

  "react": "^16.7.0-alpha.2",
  "react-dom": "^16.7.0-alpha.2",
Run Code Online (Sandbox Code Playgroud)