下面我提供了 ReactJS 代码的简化草图(基于 material-ui )。这段代码无法编译,因为我可能在错误的位置添加了函数handleClickOpen()和函数handleClose()。 我该如何修复它?
特别是,以下是错误消息:
TypeError: react__WEBPACK_IMPORTED_MODULE_6___default.a.useState is not a function
import React, { Component, Fragment } from 'react';
import Slide from '@material-ui/core/Slide';
const Transition = React.forwardRef(function Transition(props, ref) {
return <Slide direction="up" ref={ref} {...props} />;
});
class BottomControls extends Component {
render() {
const [open, setOpen] = React.useState(false);
function handleClickOpen() {
setOpen(true);
}
function handleClose() {
setOpen(false);
}
return (
<Fragment>
# ...
</Fragment>
);
}
}
export default BottomControls;
最佳答案
像
useState
这样的钩子(Hook)仅适用于功能组件它们应该在渲染函数之外调用
React和react-dom需要是16.8或更高版本
import React, { useState, Fragment } from 'react';
import Slide from '@material-ui/core/Slide';
const Transition = React.forwardRef(function Transition(props, ref) {
return <Slide direction="up" ref={ref} {...props} />;
});
function BottomControls(props) {
const [open, setOpen] = React.useState(false);
function handleClickOpen() { setOpen(true); }
function handleClose() { setOpen(false); }
return (
<Fragment>
// whatever
</Fragment>
)
}
export default BottomControls;
关于javascript - TypeError : react__WEBPACK_IMPORTED_MODULE_6___default. a.useState 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57348956/