2016-06-15 13 views
16

Sto cercando un PropType che significaCome posso dichiarare un PropType corrispondente a un numero nullable?

"questo è richiesto, e lo farà essere un numero o essere null"

In altre parole, quello che ho adesso è

ma che lancia un avviso se un valore null viene passato in, ma voglio null per essere un valore accettabile.

+0

Potrebbe chiarire che si desidera essere avvisati quando gettato il puntello è passato 'undefined' ma sta bene con' null' (vale a dire, per rilevare un errore di battitura)? – binki

+0

Questo sembra essere l'ultimo su questo, dal momento che l'ho seguito. https://github.com/facebook/prop-types/pull/90 –

risposta

5

Basta usare:

PropTypes.number 

Per impostazione predefinita tutti i tipi prop non sono richieste (vale a dire consentire nulloundefined) a meno che non si pop un .isRequired sulla fine della loro.

È possibile visualizzare la documentazione complete per proptypes qui:

+9

Ma questo permette 'undefined' troppo, dimenticando che permette di impostare il puntello! –

+0

Buono a sapersi, ma probabilmente soddisfa ancora i requisiti dell'OP. – ctrlplusb

-1

ne dite: PropTypes.oneOfType([PropTypes.number, null]).isRequired;?

dovrebbe funzionare dal 15.4.0.

Modifica: appena notato questo è stato chiesto più di un anno fa. Bene, lascerò comunque questa risposta qui.

+0

Purtroppo non funziona. Il "null" nel secondo elemento dell'array non è una funzione proptype come si aspetta React. –

+1

Si dovrebbe usare 'PropTypes.oneOf ([null])' invece di 'null' –

+1

Tuttavia, anche' undefined' sarà trattato come una proprietà valida, quindi non vedo alcun valore nel solo facendo opzionale, come soluzione @ctrlplusb proporre –

Problemi correlati