J'ai le PropTypes
suivant:
SmartTable.propTypes = {
name: React.PropTypes.string.isRequired,
cols: React.PropTypes.array.isRequired,
rows: React.PropTypes.array.isRequired,
};
mais le linter me dit:
Prop type array is forbidden
, Comment puis-je le changer?
Une solution possible pour cela (mais je pense que ce n'est pas intelligent):
SmartTable.propTypes = {
name: React.PropTypes.string.isRequired,
cols: React.PropTypes.arrayOf(React.PropTypes.string),
rows: React.PropTypes.arrayOf(React.PropTypes.string),
};
Une des solutions qui a fonctionné pour moi:
Si vous voulez des tableaux:
SmartTable.propTypes = {
name: PropTypes.string.isRequired,
cols: PropTypes.instanceOf(Array),
rows: PropTypes.instanceOf(Array),
};
Pour les objets et les tableaux, il peut s'agir:
SmartTable.propTypes = {
name: PropTypes.string.isRequired,
cols: PropTypes.instanceOf(Object),
rows: PropTypes.instanceOf(Array),
};
Si le tableau de colonnes et de lignes est un objet, j'aime utiliser la forme, ce pourrait donc être quelque chose comme ça.
SmartTable.propTypes = {
name: PropTypes.string.isRequired,
cols: PropTypes.arrayOf(PropTypes.shape({
id: PropTypes.string.isRequried,
value: PropTypes.string,
})
rows: PropTypes.arrayOf(PropTypes.shape({
id: PropTypes.string.isRequried,
value: PropTypes.string,
})
};
Versions courtes:
pour Array PropTypes.shape([])
pour Object PropTypes.shape({})