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

是否将形状已知但大小未知的数组传递给组件?[副本]

盛嘉
2023-03-14

我是打字新手。目前,我正在尝试将名为items的道具传递给React组件。

项目长度未知,但形状已知:

items = [
    [string, (unknown) => unknown],
    [string, (unknown) => unknown],
    [string, (unknown) => unknown],
    ...
]

该组件是一个简单的手风琴组件,应该是可重用的。每个数组中的第一个元素描述应该呈现的标题,函数描述应该在单击时触发的操作。由于这是一个可重用组件,因此该组件应该接受带有任意参数和返回值的任何操作。

这在JS中是非常直接的,但是我无法理解如何在TS中指定类型?有人能帮我或给我指出正确的方向吗?

更新以供将来参考:
此解决方案完成此任务
-1:将项定义为一个touple数组
-2:将内部数组定义为一个包含固定数量元素的数组。
-3:将函数定义为包含任意数量的参数并返回

interface Props {
    title: string,
    items: Array<[string, (...args: any) => any]>,
}

共有1个答案

曹建华
2023-03-14

将形状定义为类型:

type Type = [string, (arg0: any) => any];
let items: Array<Type> = [];
 类似资料:
  • 我试图使用{children}将道具传递给子组件。 父亲组件: 子组件: 像这样使用它们: 我想把来自FatherComp的道具直接传递给ChildComp: 是否有可能实现我试图直接使用react功能组件而无需状态管理的目标? 谢谢

  • 问题内容: 我有一个带有一些componentDidMount逻辑的React组件: 是否可以通过props传递此组件,以便componentDidMount()中的所有内容都被执行,以某种方式伪造以便截取屏幕截图?遵循以下原则: 我知道我可以使用,但是我有一些复杂的登录逻辑,我想使用这样的快捷方式来避免,而是将所有需要的道具直接传递给组件? 问题答案: 在这里回答了这个问题。让我们在这里尝试相同

  • 问题内容: 我正在尝试访问DetailsPage组件中的 ID ,但无法访问它。我试过了 将参数传递给DetailsPage,但徒劳。 所以有什么想法如何将ID传递给DetailsPage吗? 问题答案: 如果要将props传递到路线内的组件,最简单的方法是利用,如下所示: 您可以使用以下内容访问道具: 将需要通过原路线的道具,否则你将只能得到内。

  • 问题内容: 我想将功能传递给子组件,但出现此错误。 基本上是我想做的。 var ReactGridLayout = require(’react-grid-layout’); 似乎它是在React v16中引入的。因此,将函数从父代传递给子代的正确方法是什么? 问题答案: 我发现出了什么问题。这是因为react-grid-layout。我必须将其余的属性传递给孩子。

  • 问题内容: 有谁知道如何将C#ASP.NET数组传递给JavaScript数组?示例代码也将很好。 对不起,如果我以前的人含糊不清。这个问题实际上很简单。为了简单起见,我在文件中声明: 现在,我想传递给客户端,并在JavaScript中使用数组中的数据。我该怎么做? 问题答案: 您可以使用ClientScript.RegisterStartUpScript将javascript注入Page_Loa

  • 问题内容: 我在烧瓶中有一个称为数组的函数,该函数接收一个列表并打印出列表中的项目: 在客户端,我想将名为str的javascript数组传递给该数组。我该怎么办?这就是我现在所拥有的,但是Flask没有读取添加的变量。有任何想法吗? 问题答案: Flask具有一个称为request的内置对象。在请求中有一个称为args的multidict。 您可以用来检索查询字符串的值。 当然,这需要一个get