In React, are there any real differences between these two implementations?
Some friends tell me that the FirstComponent is the pattern, but I don't see why. The SecondComponent seems simpler because the render is called only once.
First:
import React, { PropTypes } from 'react'
class FirstComponent extends React.Component {
  state = {
    description: ''
  }
  componentDidMount() {
    const { description} = this.props;
    this.setState({ description });
  }
  render () {
    const {state: { description }} = this;    
    return (
      <input type="text" value={description} /> 
    );
  }
}
export default FirstComponent;
Second:
import React, { PropTypes } from 'react'
class SecondComponent extends React.Component {
  state = {
    description: ''
  }
  constructor (props) => {
    const { description } = props;
    this.state = {description};
  }
  render () {
    const {state: { description }} = this;    
    return (
      <input type="text" value={description} />   
    );
  }
}
export default SecondComponent;
Update:
I changed setState() to this.state = {} (thanks joews), However, I still don't see the difference. Is one better than other?
 
     
     
     
     
     
     
     
     
     
     
     
     
    