如何通过不同元素的onclick在nextjs中修改元素?


import Link from 'next/link';
function myClick(e){
  console.log(e);
}
const Index = () => (
        <section className="min-vh-100">
            <div className="input_bar border rounded-maximum p-1 mx-1 bg-white d-flex">
                <input className="myButton submit_bar text-black" placeholder="Insert your input&hellip;"/>
                <Link href="#"><a onClick={myClick} className="input_icon"></a></Link>
            </div>
        </section>
);

我正在使用nextjs,并且我正在尝试通过另一个Div中的点击函数更改DIV的类,我找不到如何做到这一点的示例,以便我可以理解它的工作原理。谢谢。

这是一个示例,使用参考:

import Link from 'next/link'
const Index = () => {
  let myDiv = React.createRef()
  function myClick() {
    myDiv.current.classList.add('add-this-class')
  }
  return (
    <section className="min-vh-100">
      <div
        ref={myDiv}
        className="input_bar border rounded-maximum p-1 mx-1 bg-white d-flex"
      >
        <input
          className="myButton submit_bar text-black"
          placeholder="Insert your input&hellip;"
        />
        <Link href="#">
          <a onClick={myClick} className="input_icon" />
        </Link>
      </div>
    </section>
  )
}

了解我在这里做什么。我正在使用此行创建参考:

let myDiv = React.createRef()

然后,我将其分配给要访问的元素,在示例中,我将其分配给Div:

<div ref={myDiv} className="..." >

和在onClick函数上我访问DIV并添加一个类:

myDiv.current.classList.add('add-this-class')

让我知道这是否对您有用。(如果确实如此,请感谢Abderrahman(

我使用钩子。

const Index = () => {
    const [className, setClassName] = useState("")
    const myClick = () => {
        setClassName("some-class")
    }
    return (
        <div>
            <button onClick={myClick}>Click me</button>
            <div className={className}>Classname gets changes</div>
        </div>
    )
}

最新更新