【发布时间】:2021-01-12 01:01:49
【问题描述】:
我有三个按钮使用相同的点击处理程序。 - 我的愿望是只在单击时更改一个按钮的颜色。
如果单击了另一个按钮,我希望之前单击的按钮返回颜色“蓝色”(原始状态)。
示例代码如下:
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>
);
}
【问题讨论】:
-
为什么不为自定义按钮创建一个react组件,让每个按钮都有自己的状态,而不依赖于父组件的全局状态?
标签: javascript reactjs react-hooks state