Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 更改第三方组件属性的数据类型?_Reactjs_Typescript - Fatal编程技术网

Reactjs 更改第三方组件属性的数据类型?

Reactjs 更改第三方组件属性的数据类型?,reactjs,typescript,Reactjs,Typescript,我有一个工作正常的组件,但其中一个支柱是类型“string”,我想传递一个组件,或者简单地将数据类型设置为“any”。有办法做到这一点吗 为了更清楚地说明这一点,我试图修改第三方类的行为。在这种情况下,这是非常安全的,我已经直接更改了第三方代码,但是如果可能的话,在Typescript中,更好的方法是继承,在继承的类中,更改道具的数据类型,这样我就可以显示,例如,列表,而不是简单地显示文本,imo传入typeany通常会首先破坏使用Typescript的目的。按照我的理解,你有两个选择: 分离道

我有一个工作正常的组件,但其中一个支柱是类型“string”,我想传递一个组件,或者简单地将数据类型设置为“any”。有办法做到这一点吗


为了更清楚地说明这一点,我试图修改第三方类的行为。在这种情况下,这是非常安全的,我已经直接更改了第三方代码,但是如果可能的话,在Typescript中,更好的方法是继承,在继承的类中,更改道具的数据类型,这样我就可以显示,例如,列表,而不是简单地显示文本,imo传入type
any
通常会首先破坏使用Typescript的目的。按照我的理解,你有两个选择:

  • 分离道具:有一个
    string
    类型的道具和另一个
    ReactNode
    类型的道具,因为它是您计划传递的组件

  • 如果出于某种原因,它必须是单个道具,请使用
    string | ReactNode
    作为其类型。尽管我建议选择1而不是这个


  • 进一步思考,你可能想考虑不将组件作为道具(因为性能原因)。设计您的组件,以便您可以使用常规的ES6

    import
    导入组件,这样会更好,但这同样取决于您的使用和设计。

    您的问题不够清晰。能否为问题添加更多详细信息?如果第三方库组件需要字符串,则应向其传递字符串。如果将组件传递给它,则可能会遇到意外行为。不过,为了回答您的问题,我认为无论如何都没有必要调整第三方的类型定义library@paulosullivan22:我确切地知道会发生什么——我在问如何在不直接改变第三方库本身的情况下实现这一点。