当前位置: 首页 > 知识库问答 >
问题:

类型导入类。道具类型无效

窦伟
2023-03-14

我在许多组件中使用了几个大型对象,因此我为每个大型对象创建了一个proptypes文件,如下所示:

PropTypes/PropLargeObject.js 

其中包含从"prop类型"导入PropType;

const PropLargeObject =
    PropTypes.shape({
        id: PropTypes.number.isRequired, 
        name: PropTypes.string.isRequired,
        items: PropTypes.ArrayOf(PropTypes.Shape({
            itemId: PropTypes.number.isRequired,
            itemName: PropTypes.string.isRequired 
        }))
    });

export default PropLargeObject;

我在组件中使用对象,如下所示:

import {PropLargeObject} from "./PropTypes/PropLargeObject";

Component.propTypes = {
    LargeObject: {PropLargeObject}
}

它给我一个警告,Prop类型“PropLargeObject”无效,它必须是一个函数,通常来自React。道具类型。我做错了什么?

共有1个答案

吕英才
2023-03-14

去掉不必要的花括号:

import PropLargeObject from "./PropTypes/PropLargeObject"; // PropLargeObject is the default export

Component.propTypes = {
    LargeObject: PropLargeObject // PropLargeObject is a PropTypes.shape function. Don't wrap with an object
}

您甚至可以将其短接一点:

import LargeObject from "./PropTypes/PropLargeObject"; // you can assign whatever name you want to default imports

Component.propTypes = {
    LargeObject
}
 类似资料:
  • 我得到警告,因为警告:失败的道具类型:组件:道具类型是无效的;它必须是一个函数,通常来自包,但收到了 我的代码是: 我的功能运行正常,但出现此控制台错误是否有人可以帮助我解决此警告?

  • 我有一个组件,根据其大小接收道具。道具可以是字符串或数字,例如:或。 我能让知道这可以是PropTypes验证中的一个或另一个吗? 如果未指定类型,则会收到警告: prop type无效;它必须是一个函数,通常来自React。道具类型。

  • 本文向大家介绍react-native 道具类型,包括了react-native 道具类型的使用技巧和注意事项,需要的朋友参考一下 示例 该prop-types包允许您向组件添加运行时类型检查,以确保传递给组件的道具类型正确。例如,如果不将aname或isYummyprop传递给下面的组件,它将在开发模式下引发错误。在生产模式下,不进行道具类型检查。定义propTypes可以使您的组件更具可读性和

  • 我在react native中引入了用于搜索的Texinput。代码如下: 和: 每当我在输入文本后运行Android时,我都会看到这个警告: 警告失败属性类型为TextInput提供的“object”类型的无效属性“value”,应为“string”

  • 我收到警告“警告:失败的道具类型:提供给的类型为

  • 我试图在我的主文件。 entry.ts位于src/js/entry, ts,vue的类型定义位于src/js/lib/baul/vue/type/index.d.ts 编译此文件时,输出如下。顺便说一句,typescript的目标是es6和es6模块。 JQuery工作正常(看起来像),所以我用导入替换了对vue类型定义的引用。 它编译得很好,下面是输出: 问题是没有删除类型定义的import语句