Saya menggunakan kode di bawah ini untuk mengatur alat peraga standar pada komponen Bereaksi tetapi tidak berfungsi. Dalam render()
metode ini, saya dapat melihat output "props tidak terdefinisi" dicetak pada konsol browser. Bagaimana saya bisa menentukan nilai default untuk alat peraga komponen?
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
sumber
sumber
react
/native
doc dan tidak dapat menemukan mereka, di mana doc untuk itu?static
variabel kelas apa itu masuk akal, jadi saya sarankan membaca tentang mereka di MDN . Pada dasarnya, sintaks dalam dokumentasi ini setara dengan ini karena keduanya menambahkan informasi tentang alat peraga ke kelas itu sendiri, bukan contoh individu.Pertama, Anda perlu memisahkan kelas Anda dari ekstensi selanjutnya yang tidak dapat Anda perpanjang di
AddAddressComponent.defaultProps
dalam,class
alih - alih pindahkan ke luar.Saya juga akan merekomendasikan Anda untuk membaca tentang siklus hidup Konstruktor dan Bereaksi: lihat Komponen Komponen dan Siklus Hidup
Inilah yang Anda inginkan:
sumber
constructor
dancomponentWillReceiveProps
? Menurut saya OP hanya lupa tanda kurung tutup untuk deklarasi kelas mereka.Anda juga dapat menggunakan tugas Destrukturisasi.
Saya suka pendekatan ini karena Anda tidak perlu menulis banyak kode.
sumber
gunakan defaultProps statis seperti:
Diambil dari: https://github.com/facebook/react-native/issues/1772
Jika Anda ingin memeriksa jenisnya, lihat bagaimana menggunakan PropTypes dalam jawaban treyhakanson atau Ilan Hasanov, atau tinjau banyak jawaban di tautan di atas.
sumber
Anda dapat mengatur alat peraga default menggunakan nama kelas seperti yang ditunjukkan di bawah ini.
Anda dapat menggunakan cara Bereaksi yang direkomendasikan dari tautan ini untuk info lebih lanjut
sumber
Untuk prop tipe fungsi Anda dapat menggunakan kode berikut:
sumber
Jika Anda menggunakan komponen fungsional, Anda dapat menentukan default dalam tugas penataan, seperti:
sumber
sumber