react函数组件中有相同classname的div,通过类型为string的id定位不同的div,实现点击更改类型为boolean的finished的值,从而更改相应div的className,再次点击又更改回来
时间: 2023-06-17 22:07:26 浏览: 164
首先,你需要在组件中定义一个状态 `finished`,并将其默认值设置为 `false`。然后,你可以在 `render` 函数中使用条件渲染来根据 `finished` 的值来决定是否给该 div 添加特定的 className。最后,你需要在点击事件处理函数中使用 `setState` 方法来更改 `finished` 的值。
下面是代码示例:
```jsx
import React, { useState } from 'react';
const MyComponent = () => {
const [finished, setFinished] = useState(false);
const handleClick = () => {
setFinished(!finished);
};
return (
<>
<div className={finished ? 'finished' : ''} id="div1" onClick={handleClick}>
Div 1
</div>
<div className={finished ? '' : 'finished'} id="div2" onClick={handleClick}>
Div 2
</div>
</>
);
};
export default MyComponent;
```
在上面的代码中,我们定义了一个状态 `finished`,并将其默认值设置为 `false`。在渲染 `div` 时,我们使用了条件渲染来根据 `finished` 的值来决定是否给该 `div` 添加特定的 `className`,从而改变该 `div` 的样式。在点击事件处理函数 `handleClick` 中,我们使用 `setState` 方法来更改 `finished` 的值,以实现点击时更改该 `div` 的样式。
阅读全文