Getting this error at the moment:
Uncaught TypeError: Cannot read property 'value' of null
I call this in my render function below:
<input type="submit" className="nameInput" id="name" value="cp-dev1" onClick={this.writeData}/>
I also have tried calling it in here
componentWillMount: function(){
var name = document.getElementById('name').value;
},
How can I get the id of an input text field and read that value and ensure it is not null?
I think the DOM is loading after I try to read the element hence why it is null
This question is related to
javascript
reactjs
null
getelementbyid
You may have to perform a diff and put document.getElementById('name')
code inside a condition, in case your component is something like this:
// 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>
);
}
If diff is not performed then, you will get null
.
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;
Source: Stackoverflow.com