错误:
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/