javascript - 在 ReactJS 中重新创建单选按钮行为
问题描述
我在 Sandbox 中重新创建了单选按钮行为。当一个按钮处于活动状态时,所有其他按钮都应该处于非活动状态。
请在此处找到链接: https ://codesandbox.io/s/amazing-chaplygin-xf8el?fontsize=14
对于 3 个按钮,我创建了 3 个功能。有没有办法用 1 个函数优化我的代码?
谢谢
解决方案
是的,您可以通过使用数组来做到这一点:
import React, { useState } from "react";
export default function ButtonToggle() {
const [happy, setHappy] = useState([false, false, false]);
function handle(idx) {
let set = [false, false, false];
set[idx] = !happy[idx];
setHappy(set);
}
return (
<div>
{happy[0] ? "" : ""}
<button
onClick={() => {
handle(0);
}}
>
bouton1
</button>
{happy[1] ? "" : ""}
<button
onClick={() => {
handle(1);
}}
>
bouton2
</button>
{happy[2] ? "" : ""}
<button
onClick={() => {
handle(2);
}}
>
bouton3
</button>
</div>
);
}
代码沙盒: https ://codesandbox.io/s/jolly-haibt-73df1
推荐阅读
- c# - 进入和离开对象时如何制作弹出表单?C#
- ros - ROS Launcher 文件导致 roslaunch 出错
- c# - 执行 dotnet ef 迁移 remove 仅恢复模型快照
- python - 在 Plotly 中显示带有一条线的折线图的图表标签
- android - Google Drive Android - OAuth 同意屏幕显示错误的应用名称
- flutter - FlutterError(查找已停用小部件的祖先是不安全的)
- amazon-web-services - Terraform pathexpand 函数在复杂项目中不起作用?
- c++ - '-DLOCAL' 标志在 C++ 编译中的作用
- python - 使用 Python 删除大文件的每 5 个字节
- apache - 如何以非 root 用户身份运行 Apache?