gpt4 book ai didi

javascript - 当有多个按钮使用相同功能时,使用单击处理程序更改按钮的颜色

转载 作者:行者123 更新时间:2023-12-04 08:51:41 26 4
gpt4 key购买 nike

我有三个按钮使用相同的点击处理程序。 - 我的愿望是只在单击时更改一个按钮的颜色。
如果单击另一个按钮,我希望先前单击的按钮返回颜色“蓝色”(原始状态)。
示例代码如下:

import React, { useState } from 'react';

export default function App() {
const [state, setState] = useState({
name: 'bob',
color: 'blue',
});

const handleColor = (e) => {
setState((state) => ({
...state,
color: 'red',
}));
};


return (
<div>
<button style={{ backgroundColor: state.color }} onClick={handleColor}>Click Me</button>
<button style={{ backgroundColor: state.color }} onClick={handleColor}>Click Me 2</button>
<button style={{ backgroundColor: state.color }} onClick={handleColor}>Click Me 3</button>
</div>
);
}

最佳答案

你看起来像这样吗

const lists = [
{ id: 1, title: "Click 1" },
{ id: 2, title: "Click 2" },
{ id: 3, title: "Click 3" }
];
export default function App() {
const [selected, setSelected] = useState(0);
const [state, setState] = useState({
name: "bob",
color: "blue"
});

const handleColor = (row) => {
setSelected(row.id);
};

return (
<div>
{lists.map((list) => (
<button
key={list.id}
onClick={() => handleColor(list)}
style={{ backgroundColor: list.id === selected ? "red" : "" }}
>
{list.title}
</button>
))}
</div>
);
}
Live working demo

关于javascript - 当有多个按钮使用相同功能时,使用单击处理程序更改按钮的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64068412/

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