Вам необходимо определить propTypes как статическое свойство, поэтому оно должно быть
static propTypes = {
}
Статические свойства по-прежнему являются предложением этапа 2 ( info ), поэтому вам необходимо использоватьПлагин Babel для преобразования синтаксиса.Плагин transform-class-properties будет обрабатывать этот синтаксис для вас.
Очевидно, что вы можете просто определить свойство класса, если вы не хотите использовать плагин babel.По сути, это то, во что плагин преобразует ваш код.
export default class ActivityCard extends React.Component {
...
}
ActivityCard.propTypes = {
items: PropTypes.array,
cellHeight: PropTypes.number,
columns: PropTypes.number
}
Реактивные документы на самом деле объясняют это в документации для defaultProps
, но принцип тот же.
https://reactjs.org/docs/typechecking-with-proptypes.html#default-prop-values
Если вы используете преобразование Вавила, например свойства класса преобразования, вы также можете объявить defaultProps как статическое свойство в классе компонента React.Этот синтаксис еще не завершен, и для его работы в браузере потребуется этап компиляции.Для получения дополнительной информации см. Предложение полей класса.
Чтобы отсортировать ошибку регистра паскаля, вам необходимо выполнить одно из следующих действий:
Клонировать элемент и передать новый объект.к этому
{React.cloneElement(this.props.cardComponent, content={item})}
Назовите это паскаль.(не уверен, что вы можете сделать это на самой опоре).
// store it in some variable
const CardComponent = this.props.cardComponent;
// n.b. you might not need to do this if you just pass the prop in with
// the correct casing although i'm not sure this is a sensible approach.
// I think you're saying PascalCasing the prop directly doesn't work?
<CardComponent content={item} />