当前位置:  开发笔记 > 编程语言 > 正文

无法通过id找到一个React.Component

如何解决《无法通过id找到一个React.Component》经验,为你挑选了1个好方法。

我有一个React.Componentrender()这种方式声明:

render(){
    return 
console.log("test")}/>
}

这是我的Notification课:

class Notification extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            message: "place holder",
            visible: false
        }
    }

    show(message, duration){
        console.log("show")
        this.setState({visible: true, message})
        setTimeout(() => {
            this.setState({visible: false})
        }, duration)
    }

    change(message){
        this.setState({message})
    }

    render() {
      const {visible, message} = this.state
      return 
{visible ? message : ""}
} }

就像类名所暗示的那样,我正在尝试创建一个带有消息的简单通知。我只想通过调用显示通知noti.show(message, duration)

然而,当我试图找到noti这样做window.noti$("#noti")并且document.findElementById("noti"),他们全都给我undefined,而noti正确显示。我可以找到butt使用代码查找noti

我应该如何找到noti?我是前端的新手,因此请更具体地说明。



1> 小智..:

将JQuery库与Reactjs一起使用不是一个好主意。相反,您可以找到适当的react库来进行通知或其他操作。

同样在React中,我们ref用来访问DOM节点。像这样:

    constructor(props) {
        super(props);
        this.noti = React.createRef();
    }

    ...

     console.log("test")}/>

更多信息:https : //reactjs.org/docs/refs-and-the-dom.html

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有