当前位置: 首页 > 知识库问答 >
问题:

我试图在单击按钮时显示消息警报

叶华皓
2023-03-14
export default function ProjectCard1() {
  
  const [open, setOpen] = React.useState(false);


  const handleClick = () => {
    setOpen(true).then(response => {
      window.open("https://project-uts-teori.vercel.app/");
    });

  };

  const handleClose = (event, reason) => {
    if (reason === 'clickaway') {
      return;
    }
    setOpen(false);
  };
   

它表示TypeError:无法读取未定义的属性(读取'then')。我需要先显示警报消息,然后再打开窗口。打开站点。

共有1个答案

傅兴平
2023-03-14

使用useState钩子设置值时,它不会返回promise,这意味着您不能使用.then语法。相反,您需要使用useffect钩子并添加open作为依赖项。

export default function ProjectCard1() {
  
  const [open, setOpen] = React.useState(false);

  const handleClick = () => {
    setOpen(true)
  };

  React.useEffect(() => {
    if (open) {
      window.open("https://project-uts-teori.vercel.app/");
    }
  }, [open])

  const handleClose = (event, reason) => {
    if (reason === 'clickaway') {
      return;
    }
    setOpen(false);
  };
}   

这样,每次open变量更改时都会调用useffect函数,并且只有当值为true时,它才会重定向用户。

 类似资料:
  • 我需要帮助创建一个div,当你点击一个按钮时,里面有自定义超文本标记语言的div会被创建。 如果这是可能的(很可能是),我正在制作一个邮箱。 谢谢!!!

  • 问题内容: 我正在尝试使用Apple的 SwiftUI 制作一个应用程序,我需要有两个按钮在同一行中显示两个不同的视图。 我使用 Xcode beta 7 和 MacOS Catalina beta 7 。我尝试添加一个表示视图的视图,但是无法单击它,而当我尝试在外部进行简单单击并单击该视图时,该视图没有出现。我也尝试过添加一个内部,但是它也不起作用。单击时也无法添加,视图仍然不会出现 我希望该视

  • 按钮点击页面后刷新并重定向到另一个页面。在我的情况下,点击按钮后,我给页面刷新超时,但点击按钮后,它显示超时异常,没有时间等待。 例外: 失败:createEventTest组织。openqa。硒。TimeoutException:等待页面加载时超时。命令持续时间或超时:15.08秒构建信息:版本:“2.53.0”,修订版:“35ae25b1534ae328c771e0856c93e187490c

  • 我用的是Android Studio2.2,最小sdk的项目是23。 请帮助我做所需的代码。

  • 我的菜单显示向下,但然后水平。 我希望每一个导航项目都显示下来,在彼此的上面。 现场测试站点URL:ministerios-elim.herokuapp.com CodePen:(无法使菜单在单击CodePen时出现)。 https://codepen.io/ogonzales/pen/abnqxlg 更新2: 更新3:

  • 链接到我正在尝试刮取的页面: https://www.nytimes.com/reviews/dining 因为这个页面有一个“show more”按钮,所以我需要Selenium自动反复单击“show more”按钮,然后以某种方式使用Beauty soup来获取页面上每个餐厅评论的链接。在下面的照片中,我想获取的链接位于https://...onigiri.html" 迄今为止的代码: 我如何