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({…}))