简体   繁体   English

"如何在 reactjs 中应用 classList.toggle("active")"

[英]How to apply classList.toggle("active") in reactjs

How to apply classList.toggle("active")<\/code> in reactjs.如何在 reactjs 中应用classList.toggle("active")<\/code> 。 i create a two buttons and give onclick<\/code> function togglePopup<\/code> and define it at top.我创建了两个按钮并提供onclick<\/code>函数togglePopup<\/code>并在顶部定义它。 but i'm confused how to apply document.getElementById('popup-1').classList.toggle("active")<\/code> in react.但我很困惑如何在反应中应用document.getElementById('popup-1').classList.toggle("active")<\/code> 。 i apply this method in javaScript and i don't know how it is work in react?我在 javaScript 中应用了这个方法,但我不知道它在反应中是如何工作的?

Popup.jsx<\/strong><\/em>弹出窗口.jsx<\/strong><\/em>

const Filter = () => {
    const togglePopup = () => {
    document.getElementById('popup-1').classList.toggle("active")
    }
    return (
        <>
<button className='p-3 border bg-blue-400'>click</button>
            <div className="popup" id="popup-1">
                <div className="overlay"></div>
                <div className="content">
                    <div className="close-btn" onClick={togglePopup}>&times;</div>
                    <h1 className='text-2xl font-bold'>title</h1>
                    <p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Non debitis officia neque nostrum, perspiciatis sed quaerat veritatis numquam, explicabo dolorum aliquam illo dolor at nemo maxime consequatur facilis magni laudantium! Ipsa eveniet quam, illum quos laudantium a placeat temporibus dolores libero pariatur quibusdam atque impedit magnam nam ipsum, rerum sapiente?</p>
                </div>
            </div>

You should not be querying or manipulating the DOM from React.你不应该从 React 查询或操作 DOM。 If you want to toggle a class have your button update your component's state and then render the markup according to that state.如果您想切换一个类,请让您的按钮更新组件的状态,然后根据该状态呈现标记。

function MyComponent () {
  const [active, setActive] = useState(false);

  return (
    <div className={active ? ‘active’ : ‘’}>
      <button onClick={() => setActive(!active)}>Toggle</button>
    </div>
  )

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM