J'utilise le code ci-dessous pour définir les accessoires par défaut sur un composant React mais cela ne fonctionne pas. Dans la render()
méthode, je peux voir que la sortie "accessoires non définis" a été imprimée sur la console du navigateur. Comment puis-je définir une valeur par défaut pour les accessoires du composant?
export default class AddAddressComponent extends Component {
render() {
let {provinceList,cityList} = this.props
if(cityList === undefined || provinceList === undefined){
console.log('undefined props')
}
...
}
AddAddressComponent.contextTypes = {
router: React.PropTypes.object.isRequired
}
AddAddressComponent.defaultProps = {
cityList: [],
provinceList: [],
}
AddAddressComponent.propTypes = {
userInfo: React.PropTypes.object,
cityList: PropTypes.array.isRequired,
provinceList: PropTypes.array.isRequired,
}
la source
react
/native
doc et je n'ai pas pu les trouver, où est le doc pour cela?static
sont les variables de classe, cela a du sens, alors je suggère de les lire sur MDN . Fondamentalement, la syntaxe de la documentation est équivalente à cela car les deux ajoutent des informations sur les accessoires à la classe elle-même, pas sur les instances individuelles.Vous devez d'abord séparer votre classe des autres extensions, car vous ne pouvez pas l'étendre
AddAddressComponent.defaultProps
auclass
lieu de la déplacer à l'extérieur.Je vous recommanderai également de lire sur le cycle de vie du constructeur et de React: voir Spécifications des composants et cycle de vie
Voici ce que vous voulez:
la source
constructor
etcomponentWillReceiveProps
? Il me semble que l'OP vient d'oublier un crochet fermant pour sa déclaration de classe.Vous pouvez également utiliser l'affectation de destruction.
J'aime cette approche car vous n'avez pas besoin d'écrire beaucoup de code.
la source
utiliser une valeur statique par défaut
Tiré de: https://github.com/facebook/react-native/issues/1772
Si vous souhaitez vérifier les types, voyez comment utiliser PropTypes dans la réponse de treyhakanson ou d'Ilan Hasanov, ou consultez les nombreuses réponses dans le lien ci-dessus.
la source
Vous pouvez définir les accessoires par défaut en utilisant le nom de la classe comme indiqué ci-dessous.
Vous pouvez utiliser la méthode recommandée par React à partir de ce lien pour plus d'informations
la source
Pour un accessoire de type de fonction, vous pouvez utiliser le code suivant:
la source
Si vous utilisez un composant fonctionnel, vous pouvez définir des valeurs par défaut dans l'affectation de déstructuration, comme ceci:
la source
la source