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

React钩子在单击时更改按钮的文本,然后再返回

贺玉石
2023-03-14

使用React钩子,我想改变我的按钮的文本,当用户点击它说“添加”,然后我想设置回原来的文本“添加到购物车”后1秒。我假设我会为此使用setTimeout,但在这种情况下,我很难弄清楚如何使用它。

我有这个

  const [buttonText, setButtonText] = useState("Add To Cart");

到目前为止。

  <button
    type="submit"
    onClick={() => setButtonText("Added")}
  >
    {buttonText}
  </button>

共有2个答案

穆才良
2023-03-14

只需将onclick处理程序更改为

onClick={
setButtonText("Added");
setTimeout(() => setButtonText("Add to Cart"), 1000)
}
魏威
2023-03-14

这样就应该起作用:

<button
   type="submit"
   onClick={() => {
   setButtonText("Added");
   setTimeout(() => {
     setButtonText("Add To Cart");
      }, 1000);
     }}
   >
    {buttonText}
 </button>

这里有一个示例:https://codesandbox.io/s/react-hooks-chang-text-of-button-on-click-and-then-back-again-qhbzv?file=/src/app.js

 类似资料:
  • 我有一个简单的部分,用户可以点击一个按钮,现在我想要点击改变(切换)文本的颜色,使用反应钩,这是我目前所拥有的。 因此,单击时初始颜色为黑色,我正在将颜色更改为。现在,再次单击时,颜色不会改变。 我需要添加什么,使这个切换在这两种颜色之间单击?

  • 当我单击一个按钮时,有没有一种方法可以更改TreeView的TreeItem的文本?我尝试执行oracle示例http://docs.oracle.com/javafx/2/uicontrols/tree-view.htm中所示的操作,但我不想通过单击TreeItem更改它,而是单击按钮。第二步,我想使用上下文菜单打开一个带有Textfield的窗口,在这里我可以手动插入文本以更改treeitem

  • 应用: 带有两个文本输入字段(input1、input2)的搜索栏 三个按钮:SearchX、SearchY、Clear Results 两个搜索都可以将input1和input2作为参数,以得到两个不同的结果。 有一个结果组件,它接受输入、操作,并根据操作呈现搜索组件。 问题: 我们希望只有在单击按钮时才启动搜索。使用下面的代码,在第一个搜索结果之后,只要您更改输入,结果组件就会预期地重新呈现,

  • 问题内容: 我正在尝试创建使用此lambda函数单击的按钮的列表: 似乎有点工作,但它会立即打印按钮文本,即它不等待用户单击按钮。 关于如何使其对按钮单击做出响应的任何想法? 问题答案: 试图在lambda中完成所有这些操作是错误的方法。简直太令人困惑了,即使不是不可能做您想做的事情。而是创建一个可以完成工作的方法,并仅将lambda用作调用该函数的一种方式:

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

  • 我正在React中使用useState钩子,状态将不会在