提问者:小点点

反应多参数FC调用


我试图用三个参数调用函数,但它不起作用。

这里是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个"


共2个答案

匿名用户

由于Form结构是一个组件,您不应该将其作为函数调用。相反,您应该创建一个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,
});

匿名用户

Form结构是一个功能组件,因此您最好使用以下语法(JSX)来呈现它:

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