【问题标题】:why is this happening ? Image Provided为什么会这样?图片提供
【发布时间】:2020-06-21 11:41:44
【问题描述】:

我正在尝试在 chrome.Using 的控制台中写入 get tag name 和 id :

" console.log(document.getElementById("Main")) console.log(document.getElementsByTagName("span")) "

在react js App.js文件中导出后。但它显示为空作为ID和空列表集合。

当我在 Component 内部做同样的事情时,确实 mount 最后触发了它...... 它按预期工作。

为什么会这样?在react js中导出后正确的写法是什么。

【问题讨论】:

  • 那是因为这个dom元素还没有被创建或挂载

标签: reactjs


【解决方案1】:

调用栈是:

  1. 渲染()
  2. componentDidMount()

所以,首先打印你的空控制台和 然后进入渲染函数,创建 DOM 元素 然后转到 componentDidMount 再次调用控制台,但这次使用的是 DOM 元素。

试试这样:

class App extends React.Component{
    componentDidMount(){
           //Your Consoles
    }
    render(){
        return(
            //Your DOM
        )
    }
}
export default App;

【讨论】:

  • 我不能把它写在componentDidMount()之外吗?如果是,我在哪里可以?是给我 null 的代码,在渲染之前执行吗?
  • 我建议你更深入地研究类组件的 React 生命周期。它会让你对主题有更清晰的理解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
  • 2011-04-12
  • 2011-06-03
  • 2018-06-08
  • 2014-12-21
相关资源
最近更新 更多