首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >React中的getElementById

React中的getElementById
EN

Stack Overflow用户
提问于 2016-10-26 15:55:07
回答 2查看 127.7K关注 0票数 34

此时正在获取此错误:

Uncaught TypeError: Cannot read property 'value' of null

我在下面的渲染函数中调用了这个函数:

代码语言:javascript
复制
<input type="submit" className="nameInput" id="name" value="cp-dev1" onClick={this.writeData}/>

我也试过在这里调用它

代码语言:javascript
复制
componentWillMount: function(){
        var name = document.getElementById('name').value;
      },

如何获取输入文本字段的id并读取该值并确保它不为空?

我认为DOM是在我尝试读取元素之后加载的,因此它是空的

EN

回答 2

Stack Overflow用户

发布于 2019-04-01 01:21:55

您可能必须执行diff并将document.getElementById('name')代码放入条件中,以防您的组件是这样的:

代码语言:javascript
复制
// using the new hooks API
function Comp(props) {
  const { isLoading, data } = props;
  useEffect(() => {
    if (data) {
      var name = document.getElementById('name').value;
    }
  }, [data]) // this diff is necessary

  if (isLoading) return <div>isLoading</div>
  return (
    <div id='name'>Comp</div>
  );
}

如果不执行diff,那么您将得到null

票数 4
EN

Stack Overflow用户

发布于 2020-10-27 10:03:43

代码语言:javascript
复制
import React, { useState } from 'react';

function App() {
  const [apes , setap] = useState('yo');
  const handleClick = () =>{
    setap(document.getElementById('name').value)
  };
  return (
    <div>
      <input id='name' />
      <h2> {apes} </h2>
      <button onClick={handleClick} />
  </div>
  );
}

export default App;
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40256673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档