带有多个参数的 React.FC 调用

Posted

技术标签:

【中文标题】带有多个参数的 React.FC 调用【英文标题】:React.FC call with multiple parameter 【发布时间】:2022-01-23 19:02:03 【问题描述】:

我正在尝试使用三个参数调用该函数,但它不起作用。

这里是React.FC

const FormStructure: React.FC< record: ModelClass, question: Array<ModelClass>, dropdownItems: Array<ModelTypeClass> > = (
    record, question, dropdownItems,
) => 
...

这是函数调用:

return (
   <Modal
      visible=this.state.modalVisible
      onCancel=() => this.setState( modalVisible: false )
   >
      FormStructure(record, this.state.question, this.state.dropdownItems)
   </Modal>
)

以下错误消息: “预期有 1-2 个参数,但得到了 3 个”

【问题讨论】:

【参考方案1】:

由于 FormStructure 是一个组件,您不应该将其作为函数调用。你应该创建一个 JSX 元素:

<Modal
  visible=this.state.modalVisible
  onCancel=() => this.setState( modalVisible: false )
>
  <FormStructure 
    record=record
    question=this.state.question
    dropdownItems=this.state.dropdownItems
  </FormStructure>
</Modal>

如果,假设你想把它作为一个函数来调用(同样,你不应该这样做,因为这是一个组件),符合类型定义的方法是传入一个具有三个属性的对象:

FormStructure( 
  record: record,
  question: this.state.question,
  dropdownItems: this.state.dropdownItems,
);

【讨论】:

那么什么时候最好使用函数语法呢? 如果它是一个组件,几乎永远不会。【参考方案2】:

FormStructure 是一个函数式组件,因此您最好使用以下语法 (JSX) 来呈现它:

return (
  <Modal
    visible=this.state.modalVisible
    onCancel=() => this.setState( modalVisible: false )
  >
    <FormStructure record=record question=this.state.question dropdownItems=this.state.dropdownItems) />
  </Modal>
)

【讨论】:

以上是关于带有多个参数的 React.FC 调用的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有命令行参数的 vbscript 中调用函数?

带有多个参数的 Kotlin 补全

如何从 Bash 中的文件调用多个命令行参数?

oracle中怎么执行带有输出参数的存储过程,在程序中我知道怎么调用,

oracle中怎么执行带有输出参数的存储过程,在程序中我知道怎么调用,

从具有多个参数 net core mvc 的控制器调用另一个 actionresult