Apakah ada cara bawaan untuk menggunakan proptypes untuk memastikan bahwa array objek yang diteruskan ke komponen sebenarnya adalah array objek dengan bentuk tertentu?
Mungkin kira-kira seperti ini?
annotationRanges: PropTypes.array(PropTypes.shape({
start: PropTypes.number.isRequired,
end: PropTypes.number.isRequired,
})),
Apakah saya melewatkan sesuatu yang sangat jelas di sini? Sepertinya ini akan sangat dicari.
arrays
reactjs
react-proptypes
majorBummer
sumber
sumber
.isRequired
pada setiap propertiReact.PropTypes.shape
. Saya tiba di sini karena saya salah diasumsikan bahwa dengan menggunakan.isRequired
padaReact.PropTypes.arrayOf
, saya tidak membutuhkannya dalam. Untuk mencapai validasi cakupan penuh, saya benar-benar akhirnya menerapkannya juga secara langsungReact.PropTypes.shape
.arrayWithShape
adalah [] (array kosong) Tidak gagal. jikaarrayWithShape
{} (sebuah objek) itu gagal. IfarrayWithShape
is[{dumb: 'something'}]
(array tanpa alat peraga yang benar) gagal. Saya perlu gagal validasi jikaarrayWithShape
array kosong. Saya hanya ingin itu lulus jika itu adalah array kosong dengan objek yang memiliki alat peragacolor
danfontsize
. Apa yang saya lewatkan?Ya, Anda harus menggunakan
PropTypes.arrayOf
alih-alihPropTypes.array
dalam kode, Anda dapat melakukan sesuatu seperti ini:Juga untuk detail lebih lanjut tentang proptypes , kunjungi Typechecking With PropTypes di sini
sumber
[undefined]
akan melewati validasiDan itu dia ... tepat di bawah hidungku:
Dari dokumen reaksi sendiri: https://facebook.github.io/react/docs/reusable-components.html
sumber
Ada impor steno ES6, Anda dapat referensi. Lebih mudah dibaca dan mudah diketik.
sumber
Jika saya harus mendefinisikan proptypes yang sama untuk bentuk tertentu beberapa kali, saya suka abstrak itu ke file proptypes sehingga jika bentuk objek berubah, saya hanya perlu mengubah kode di satu tempat. Ini membantu mengeringkan basis kode sedikit.
Contoh:
sumber
Ini adalah solusi saya untuk melindungi dari array kosong juga:
sumber