Javascript 如何在React/React Native中键入检查嵌套参数
我有一个名为Javascript 如何在React/React Native中键入检查嵌套参数,javascript,reactjs,react-native,react-proptypes,Javascript,Reactjs,React Native,React Proptypes,我有一个名为data的对象数组。我想在名为“Chat”的组件中键入检查的消息: Chat.propTypes={ 数据:PropTypes.shape({ 消息:PropTypes.arrayOf({ createdAt:PropTypes.string.isRequired, id:PropTypes.string.isRequired, image:PropTypes.string, isTyping:PropTypes.bool, text:PropTypes.string.isRequi
data的对象数组。我想在名为“Chat”的组件中键入检查的消息
:
Chat.propTypes={
数据:PropTypes.shape({
消息:PropTypes.arrayOf({
createdAt:PropTypes.string.isRequired,
id:PropTypes.string.isRequired,
image:PropTypes.string,
isTyping:PropTypes.bool,
text:PropTypes.string.isRequired,
用户:PropTypes.shape({
名字:PropTypes.string.isRequired,
id:PropTypes.string.isRequired,
})
})
})
}
但是,我收到以下错误消息:
警告:失败的道具类型:组件的属性数据。消息
Chat
的数组中包含无效的PropType表示法
当我尝试执行以下操作时:
Chat.propTypes={
数据:PropTypes.shape({
消息:PropTypes.array({
createdAt:PropTypes.string.isRequired,
id:PropTypes.string.isRequired,
image:PropTypes.string,
isTyping:PropTypes.bool,
text:PropTypes.string.isRequired,
用户:PropTypes.shape({
名字:PropTypes.string.isRequired,
id:PropTypes.string.isRequired,
})
})
})
}
我收到以下错误消息:
警告:propType失败:不允许直接调用PropTypes验证器
由道具类型
包支持。使用
PropTypes。选中PropTypes()
调用它们
对象内的属性类型与上面指定的属性类型精确匹配,因此该部分没有错误。请尝试
Chat.propTypes = {
data: PropTypes.shape({
messages: PropTypes.arrayOf(PropTypes.shape({
createdAt: PropTypes.string.isRequired,
id: PropTypes.string.isRequired,
image: PropTypes.string,
isTyping: PropTypes.bool,
text: PropTypes.string.isRequired,
user: PropTypes.shape({
firstName: PropTypes.string.isRequired,
id: PropTypes.string.isRequired,
})
}))
})
}
PropTypes.arrayOf(PropTypes.shape({…}))
是您缺少的部分我仍然收到第二条错误消息,它是失败的propType:PropTypes包不支持直接调用PropTypes验证器。
错误消息来自哪里?您是否试图在某处/以某种方式直接检查proptypes?它唯一显示的时间是proptypes.array
用于消息的参数。我试着把其他的事情都说出来了。它是否适用于PropTypes.arrayOf(PropTypes.shape({…}))
?