gpt4 book ai didi

javascript - 在 react 中使用 'true' 时出现意外的关键字 `useState`?

转载 作者:行者123 更新时间:2023-12-02 19:22:07 24 4
gpt4 key购买 nike

在这里,当用户单击它时,但在设置 时,我尝试将 MUIDraweropen 属性设置为 true state 我收到错误“意外的关键字 'true'”

import React, { useState } from "react";
import { withRouter } from "react-router-dom";
import {
Drawer as MUIDrawer,
ListItem,
List,
ListItemIcon,
ListItemText,
AppBar,
Toolbar,
IconButton
} from "@material-ui/core";
import { makeStyles } from "@material-ui/core/styles";
import InboxIcon from "@material-ui/icons/MoveToInbox";
import MailIcon from "@material-ui/icons/Mail";
import MenuIcon from "@material-ui/icons/Menu";

const useStyles = makeStyles({
drawer: {
width: "190px"
}
});

const Drawer = props => {
const { history } = props;
const classes = useStyles();
const itemsList = [
{
text: "Home",
icon: <InboxIcon />,
onClick: () => history.push("/")
},
{
text: "About",
icon: <MailIcon />,
onClick: () => history.push("/about")
},
{
text: "Contact",
icon: <MailIcon />,
onClick: () => history.push("/contact")
}
];



[state, setState] = useState(false);

const toggleDrawer = {setState(true)}

return (
<>
<AppBar>
<Toolbar>
<IconButton
style={{ position: "absolute", right: "0" }}
onClick={toggleDrawer}
>
<MenuIcon />
</IconButton>
</Toolbar>
</AppBar>
<MUIDrawer
className={classes.drawer}
open={state}
>
<List>
{itemsList.map((item, index) => {
const { text, icon, onClick } = item;
return (
<ListItem button key={text} onClick={onClick}>
{icon && <ListItemIcon>{icon}</ListItemIcon>}
<ListItemText primary={text} />
</ListItem>
);
})}
</List>
</MUIDrawer>
</>
);
};

export default withRouter(Drawer);

最佳答案

错误在于:

  [state, setState] = useState(false);

const toggleDrawer = {setState(true)}

首先,您忘记了 useState Hook 中的 const 关键字。

  const [state, setState] = useState(false);

toggleDrawer 必须是一个可以执行以下操作的函数:

const toggleDrawer = () => {setState(true)}

function toggleDrawer(){
setState(true)
}

如果你愿意,你可以在 onClick 中添加该函数:

<IconButton
style={{ position: "absolute", right: "0" }}
onClick={()=>{setState(true)}}
>

最后,如果您想在再次单击它时使其变为 false:

<IconButton
style={{ position: "absolute", right: "0" }}
onClick={()=>{setState(!state)}}
>

在最后一种情况下,setState(!state) 将允许您保存相反的状态。

然后,每次点击,状态值都会更改为与前一个值相反的值。

关于javascript - 在 react 中使用 'true' 时出现意外的关键字 `useState`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62903265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com