2017-01-20 4 views
8

Mam utworzone dwa modele State i City w osobnych plikach. Importowanie miasta w państwie.Przekazywanie Proptypes.shape do Proptypes.arrayOf w reakcji

W państwie może znajdować się wiele miast.

Poniższy kod działa poprawnie.

State.js

let State = PropTypes.shape({ 
    name: React.PropTypes.string, 
    cities: PropTypes.arrayOf(PropTypes.shape(City)) 
}); 

City.js

let City = PropTypes.shape({ 
    name: React.PropTypes.string, 
    population: PropTypes.number 
}); 

Jednak, kiedy przepisać cities jak

let State = PropTypes.shape({ 
    name: React.PropTypes.string, 
    cities: PropTypes.arrayOf(City) 
}); 

daje mi ostrzeżenie.

Podsumowanie:

cities: PropTypes.arrayOf(PropTypes.shape(City)) prace.

cities: PropTypes.arrayOf(City) nie.

Daje mi następujące ostrzeżenie:

Warning: Failed propType: Property xx of component Xx has invalid PropType notation inside arrayOf. Check the render method of Yy.

Moje pytanie brzmi, City jest Proptypes.shape, to dlaczego muszę wspomnieć Proptypes.shape(City) ponownie w Proptypes.arrayOf?

+0

Proszę pokazać eksportowej i importowej kod. Prawdopodobnie jest problem. – Sulthan

+0

Miałem ten sam problem, a problemem była kolejność importu i eksportu. –

Odpowiedz

1

W kodzie:

let City = PropTypes.shape({ 
    name: React.PropTypes.string, 
    population: PropTypes.number 
}); 

Jaka wersja React używasz? Nawiązujesz do PropTypes z React.PropTypes i PropTypes. W jaki sposób importujesz PropTypes? Korzystasz z pakietu prop-types?

Używam podobnego scenariusza i działa on dla mnie. Jak wygląda twój rendering i jakie są dane dostarczone do wniosku?

Dla mnie absolutnie następujące prace:

cities: PropTypes.arrayOf(City) 
Powiązane problemy