html - React Hooks 在单击时更改按钮的文本,然后再返回
问题描述
使用 React Hooks 我想在用户单击按钮说“已添加”时更改按钮的文本,然后我想在 1 秒后将其设置回原始文本“添加到购物车”。我假设我会为此使用 setTimeout ,但在这种情况下无法弄清楚如何使用它。
我有这个
const [buttonText, setButtonText] = useState("Add To Cart");
到目前为止。
<button
type="submit"
onClick={() => setButtonText("Added")}
>
{buttonText}
</button>
解决方案
添加timeout
inside useEffect
,并将 buttonText 作为依赖传递,每次更新 buttonText 时,超时都会恢复默认文本值:
const text = "Add To Cart"
const [buttonText, setButtonText] = useState(text);
useEffect(()=> {
const timer = setTimeout(()=> {
setButtonText(text);
}, 1000);
return ()=> clearTimeout(timer);
}, [buttonText])
return (<button
type="submit"
onClick={() => setButtonText("Added")}
>
{buttonText}
</button>)
推荐阅读
- html - CSS或SASS如何在子元素处于活动状态时更改父元素的样式::after,::before
- python - Python pypi 代理检查器输出?
- node.js - 部署 AngularJS 和 NodeJS 应用程序的建议
- ios - 具有 swiftui 形状的自适应框架(小部件)大小
- python - Django 设置和 GitHub 操作秘密
- javascript - Javascript 在三元运算符中使用单个等待
- r - 将 JSON 从 WEB API 获取到 R - 初学者在这里
- android - Android中onClick的顶级函数
- python - 更改 pyqt 中嵌套布局的扩展空间
- cumulocity - Cumulocity HTML 小部件无法访问子设备数据