Following is my code which is working fine if I initialize test with a string, though if I changed it to new Date() its throwing error. Let me know what I am doing wrong as I just started with React.
Code –
import React from 'react';
import ReactDOM from 'react-dom';
import registerServiceWorker from './registerServiceWorker';
class App extends React.Component {
render() {
//let test = 'this is a string'; // WORKING FINE
let test = new Date();
return (
<div>
<h1>Hello World</h1>
<p>{test}</p>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();
Error –
Objects are not valid as a React child (found: Fri Jul 21 2017 02:11:18 GMT+0530 (India Standard Time)). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons.
Advertisement
Answer
You are seeing that because Date is an object not a string. To get it to work as you have it with no libraries:
import React from 'react';
import ReactDOM from 'react-dom';
import registerServiceWorker from './registerServiceWorker';
class App extends React.Component {
render() {
//let test = 'this is a string'; // WORKING FINE
let test = new Date();
return (
<div>
<h1>Hello World</h1>
<p>{test.toString()}</p>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();
Call the toString() method on the date object.