jsx函数组件中获取多个相同class,然后样式修改为display:none
时间: 2024-05-15 16:15:57 浏览: 142
json2jsx:一个将JSON内容转换为一组React组件的Node JS库
可以使用React的Hooks来实现:
首先,使用`useRef`创建一个ref对象,用于保存需要修改样式的DOM节点。
然后,在函数组件中使用`useEffect`钩子函数,通过`querySelectorAll`方法获取所有相同class的DOM节点,并将其保存到ref对象中。
最后,在ref对象更新后,再次使用`querySelectorAll`方法获取所有相同class的DOM节点,并将它们的样式修改为`display:none`。
示例代码如下:
```jsx
import React, { useRef, useEffect } from 'react';
function MyComponent() {
const myRef = useRef(null);
useEffect(() => {
const nodes = document.querySelectorAll('.my-class');
myRef.current = nodes;
}, []);
useEffect(() => {
if (myRef.current) {
const nodes = document.querySelectorAll('.my-class');
nodes.forEach(node => node.style.display = 'none');
}
}, [myRef.current]);
return (
<div>
{/* some content */}
<div className="my-class">one</div>
<div className="my-class">two</div>
<div className="my-class">three</div>
{/* more content */}
</div>
);
}
```
阅读全文