我有以下内容PropTypes
:
SmartTable.propTypes = { name: React.PropTypes.string.isRequired, cols: React.PropTypes.array.isRequired, rows: React.PropTypes.array.isRequired, };
但是linter说我:
Prop type array is forbidden
,我该怎么改呢?
一个可能的解决方案(但我认为它不聪明):
SmartTable.propTypes = { name: React.PropTypes.string.isRequired, cols: React.PropTypes.arrayOf(React.PropTypes.string), rows: React.PropTypes.arrayOf(React.PropTypes.string), };
对我有用的解决方案之一:
如果你想要数组:
SmartTable.propTypes = { name: PropTypes.string.isRequired, cols: PropTypes.instanceOf(Array), rows: PropTypes.instanceOf(Array), };
对于对象和数组,它可以是:
SmartTable.propTypes = { name: PropTypes.string.isRequired, cols: PropTypes.instanceOf(Object), rows: PropTypes.instanceOf(Array), };
如果列和行的数组是我喜欢使用shape的对象,则可能是这样的。
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, })
};