Dans React, y a-t-il de réelles différences entre ces deux implémentations ? Certains amis me disent que le FirstComponent
est le modèle, mais je ne vois pas pourquoi. Le site SecondComponent
semble plus simple car le rendu n'est appelé qu'une seule fois.
D'abord :
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;
Deuxièmement :
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;
Mise à jour : J'ai changé setState()
a this.state = {}
(merci joews), Cependant, je ne vois toujours pas la différence. L'un est-il meilleur que l'autre ?
0 votes
Bonjour, merci pour les liens, ces composants sont juste un échantillon, mais comment vous liez montrer facebook.github.io/react/tips/ Je peux mettre les props dans l'état si j'ai besoin de ces données après ... la question ici est de savoir comment je dois stocker la date des props dans mon état.
12 votes
Un exemple : un composant basculant (par exemple, un popover ou un tiroir). Le parent sait si le composant doit être ouvert ou fermé ; le composant lui-même peut savoir s'il est ouvert ou non à un moment donné. Dans ce cas, je pense que
this.state = { isVisible: props.isVisible }
a du sens. Cela dépend de la façon dont l'application distribue l'état de l'interface utilisateur.2 votes
Vous devriez lire ceci medium.com/@justintulk/
5 votes
En 2017, Facebook démontre l'utilisation des props pour définir l'état initial dans sa documentation : reactjs.org/docs/react-component.html#constructor
1 votes
@Aurora0001 Qu'en est-il dans une situation où vous devez gérer un formulaire, disons un formulaire d'édition qui ferait des requêtes réseau par lui-même, mais vous devez initialiser les entrées avec des valeurs qui viendraient en tant que props à ce composant. Pour que le formulaire reste dynamique, ces valeurs doivent être conservées dans un état.