Я объявляю функцию, подобную этой:
const StudentVideoContainer = ({ course, video, currentScore, storedScore, goal, match, ...props}) => {
, в которой есть несколько действий, связанных с объектом props, которые я не хочу разрушать. ИМО эта цепочка достаточно длинная как есть. Тем не менее, prop-types, похоже, не хотят распознавать эти функции, пока я этого не делаю.
Я объявил свои проптипы так:
StudentVideoContainer.propTypes = {
course: PropTypes.shape({
course: PropTypes.shape({}),
sections: PropTypes.array,
}),
video: PropTypes.shape({}),
currentScore: PropTypes.number,
storedScore: PropTypes.number,
goal: PropTypes.number,
props: PropTypes.shape({
getStudentSingleCourse: PropTypes.func,
clearStudentSingleCourse: PropTypes.func,
getStudentVideo: PropTypes.func,
clearStudentVideo: PropTypes.func,
}),
match: PropTypes.shape({
params: PropTypes.shape({
courseId: PropTypes.string,
videoId: PropTypes.string,
})
})
};
StudentVideoContainer.defaultProps = {
course: PropTypes.shape({}),
video: PropTypes.shape({}),
currentScore: PropTypes.number,
storedScore: PropTypes.number,
goal: PropTypes.number,
props: {
getStudentSingleCourse: PropTypes.func,
clearStudentSingleCourse: PropTypes.func,
getStudentVideo: PropTypes.func,
clearStudentVideo: PropTypes.func,
},
match: PropTypes.shape({
params: PropTypes.shape({
courseId: PropTypes.string,
videoId: PropTypes.string,
})
})
};
Я попытался поместить все, что я положил для match
, в определение props
и веб-шторм перестала признавать его действительным, но когда я вытащил его обратно и деструктурировал, веб-буря признала его действительным. Я не получаю никаких ошибок в консоли, которые реквизиты не прошли проверку. И если я заменю любую из функций под props
на что-либо, кроме PropTypes.fun c, я получаю сообщение об ошибке, что функция ожидалась, поэтому я уверен, что они действительно проверяются.
Я что-то не так делаю?
Хотя технически это не приводит к каким-либо ошибкам, которые я вижу, эта красная линия сводит меня с ума, и я не фанат комментариев к подавлению следующей строки. Я не знал, что валидация опора была такой, как когда-то, примерно как 2 недели go, поэтому я предполагаю, что просто делаю это неправильно.