Apollo Client
과 Redux-Form
으로 편집 폼 구성 요소가 있으며, prop-types
도 설치되어 있습니다.오류가 무엇인지 지정했을 때 이러한 React PropType 오류가 발생하는 이유는 무엇입니까?
시간이 지남에 따라 제 3 자 라이브러리가 proptypes가 누락되거나 일부 상위 구성 요소가 소품 유형을 올바르게 사용하지 않는 경우 이러한 유형의 메시지를 던질 수있는 독서를 기억하고 있습니다.
내가 어디에서 왜 보이는지 알 수 없기 때문에 그것에 대해 추리하는 것이 어렵습니다.
나는 소품 유형이보기에 선언 한 :
PersonEdit.propTypes = {
... ✂
client: PropTypes.shape(PropTypes.any),
initialValues: PropTypes.shape(PropTypes.object),
}
PersonEdit.defaultProps = {
... ✂
client: undefined,
initialValues: undefined,
}
내가 여기
는 오류의 스크린 샷,Apollo
에서 하나, 그리고
Redux-Form
에서 하나입니다 또한 그들에 포함 된 와 함께 시도 :
PersonEdit.propTypes = {
... ✂
client: PropTypes.shape(PropTypes.any).isRequired,
initialValues: PropTypes.shape(PropTypes.object).isRequired,
}
이 소품 유형 관련 오류의 특성을 이해하는 데 도움을받을 수있는 사람이 있습니까?
이전에 내가 읽었던 부분이 매우 강하게 느껴졌으며 일부 "부모"논리 또는보기 전에 호출되는 것이 포함될 수 있지만이를 파악하는 방법이 확실하지 않습니다.
내 코드 이 (필수)을 지정하지 않은 경우 initialValues.isRequired
또는 client.isRequired
이 표시된 이유를 알지 못합니다.
export default compose(
connect(mapStateToProps, {
onServerError,
getPerson,
onBackPress,
}),
// graphql(PERSON_EDIT_MUTATION),
reduxForm({
validate,
form: 'PersonEdit',
enableReinitialize: true,
}),
)(withApollo(PersonEdit))
난 그냥 시간 componentWillMount
주위에 다양한 물건을 코드를 리믹스하고 자르고 시도 : 나는이 관련되어 기회가있을 것 같은 느낌 때문에
아, 그리고 여기,이 편집 양식에 대한 내 수출이다 그리고 componentDidMount
이 실행되었고, 편집 폼 대신에 NotFoundPage
구성 요소가 실행되도록 모든 것을 주석 처리했으며 여전히 같은 오류가 발생하고 있습니다.
내가 propTypes
과 defaultProps
선언을 주석 처리하면 오류가 사라 지므로 어떻게 든 관련됩니다.
'PropTypes.any','PropTypes.object' 또는'PropTypes.array'는 설명이 충분하지 않아'eslint-config-airbnb'에 의해 금지되어 있기 때문에 사용할 수 없습니다. 'PropTypes.shape()'또는'PropTypes.arrayOf()'안에 사용할 수 있습니다. PropTypes.any는 아무것도 넣지 않는 것과 같습니다. 무엇이 허용되면 유형을 검사하는 이유는 무엇입니까? – agm1984
나는 그 기본값을'null'으로 변경하려고했지만 변경하지 않았습니다. 나는 바벨 (babel)이 튀어 나오는 방식과 관련이 있다고 생각하기 시작했습니다. – agm1984
그러나 경고에 감사 드리면서 다른 제약 조건을 조사한 결과, 오류가 사라지도록했습니다 : client : PropTypes.objectOf (PropTypes.any), 'initialValues : PropTypes.objectOf (PropTypes. any), – agm1984