Javascript 如何获取刚刚在React.js中呈现的组件的DOM元素?
我有一个类,我在其中呈现一个模态,如下所示:Javascript 如何获取刚刚在React.js中呈现的组件的DOM元素?,javascript,reactjs,Javascript,Reactjs,我有一个类,我在其中呈现一个模态,如下所示: import Modal from 'Modal'; export default class SomeClass extends Component { constructor(props) { super(props); this.state = { modal: null } } render() { return ( <Modal
import Modal from 'Modal';
export default class SomeClass extends Component {
constructor(props) {
super(props);
this.state = {
modal: null
}
}
render() {
return (
<Modal />
);
}
}
并保存它的状态,但我不想使用getElementById
。。。我宁愿直接引用它。我该如何反应呢
如果我不应该使用裁判,为什么裁判会存在
从官方文档中,它提到了REF的几个好用例:
useRefs是摆脱getElementById的方法。尝试获取子组件中元素的引用时,可以使用forwardRefAPI 答案是裁判,但你不应该这样做。React不是vanilla JS的包装器,您应该使用它:此页面使用Bootstrap 4(我使用Bootstrap 5),并使用同一组件的挂钩显示/隐藏模态。我试图将模态抽象为它自己的组件,并向父组件显示/隐藏它。如果我不应该使用REF,为什么会存在REF?这并不是说你“不应该”使用REF,但是如果你发现自己使用了大量的REF和其他DOM操作,那你就错了。它们不应该这么随意地使用。
我不明白如何在没有引用的情况下操纵孩子的状态。
你要做的是在家长中使用一个状态并将其作为道具传递。@MattU只是为了清楚,我从来没有说过“不应该”使用refs。他们显然有目的。在这里的特定情况下,它们是不必要的。答案是refs,但你不应该这样做。React不是vanilla JS的包装器,您应该使用它:此页面使用Bootstrap 4(我使用Bootstrap 5),并使用同一组件的挂钩显示/隐藏模态。我试图将模态抽象为它自己的组件,并向父组件显示/隐藏它。如果我不应该使用REF,为什么会存在REF?这并不是说你“不应该”使用REF,但是如果你发现自己使用了大量的REF和其他DOM操作,那你就错了。它们不应该这么随意地使用。我不明白如何在没有引用的情况下操纵孩子的状态。
你要做的是在家长中使用一个状态并将其作为道具传递。@MattU只是为了清楚,我从来没有说过“不应该”使用refs。他们显然有目的。在这种特殊情况下,它们是不必要的。那么,您将如何使用React引导更改孩子的可见性?我不明白如何在没有引用的情况下操纵孩子的状态。这就是他们显示/隐藏模态的方式,所以你可以使用useState
来更改模态的状态。如果需要更改子组件中定义的模态的可见性,可以在父组件中定义状态,并将状态
值和设置状态
函数传递给子组件,以便子组件中的模态可以获得更改其自身状态的引用。然后,您将如何使用React引导更改孩子的可见性?我不明白如何在没有引用的情况下操纵孩子的状态。这就是他们显示/隐藏模态的方式,所以你可以使用useState
来更改模态的状态。如果需要更改子组件中定义的模态的可见性,可以在父组件中定义状态,并将状态
值和设置状态
函数传递给子组件,以便子组件中的模态可以获得更改其自身状态的引用。
var myModal = new bootstrap.Modal(document.getElementById('myModal'), options)