Eu uso o código abaixo para definir adereços padrão em um componente React, mas ele não funciona. No render()
método, vejo que a saída "objetos indefinidos" foi impressa no console do navegador. Como posso definir um valor padrão para os componentes do componente?
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,
}
reactjs
ecmascript-6
Joey Yi Zhao
fonte
fonte
react
/native
doc e não consegui encontrá-los. Onde está o documento para isso?static
são as variáveis de classe, faz sentido, então sugiro que leia sobre elas no MDN . Basicamente, a sintaxe na documentação é equivalente a isso porque ambos estão adicionando informações sobre os props à própria classe, não às instâncias individuais.Primeiro você precisa separar sua classe a partir da nova extensão ex você não pode estender
AddAddressComponent.defaultProps
dentro daclass
vez movê-lo fora.Também recomendo que você leia sobre o ciclo de vida do Construtor e do React: consulte Especificações do componente e ciclo de vida
Aqui está o que você deseja:
fonte
constructor
ecomponentWillReceiveProps
? Parece-me que o OP esqueceu um colchete para a declaração de classe.Você também pode usar a atribuição de Reestruturação.
Eu gosto dessa abordagem, pois você não precisa escrever muito código.
fonte
use um padrão estático
Retirado de: https://github.com/facebook/react-native/issues/1772
Se você deseja verificar os tipos, veja como usar PropTypes na resposta de treyhakanson ou Ilan Hasanov ou revise as muitas respostas no link acima.
fonte
Você pode definir os acessórios padrão usando o nome da classe, como mostrado abaixo.
Você pode usar a maneira recomendada do React neste link para obter mais informações
fonte
Para um tipo de função prop, você pode usar o seguinte código:
fonte
Se você estiver usando um componente funcional, poderá definir padrões na atribuição de desestruturação, assim:
fonte
fonte