You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React组件中如何正确传递匹配InputType类型的参数?

问题分析与解决方案

错误原因

你的InputType是联合类型,要求必须是以下三种带明确标识键的对象之一:

  • { configJsonUrl: string }
  • { configJsObject: DataType }
  • { rawData: { [key: string]: string } }

直接传递adhocData时,它只是普通键值对对象,没有联合类型要求的标识键(比如rawData),TypeScript无法将其识别为合法的InputType;而你尝试的rawData={adhocData}是错误地把rawData当成了组件props,但组件props只有input和formSubmitAction,因此不生效。

正确传递方式

需要把adhocData包装在包含rawData键的对象中,再赋值给组件的input props:

<Component 
  input={{ rawData: adhocData }} 
  formSubmitAction={func} 
/>

此时传递的input完全匹配InputType中{ rawData: { [key: string]: string } }的类型要求,TypeScript不会再报错。

其他类型的传递示例

如果需要使用InputType的其他分支,同样遵循“标识键+对应值”的结构:

  • 使用configJsonUrl时:
    <Component 
      input={{ configJsonUrl: "/path/to/config.json" }} 
      formSubmitAction={func} 
    />
    
  • 使用configJsObject时:
    const dataConfig: DataType = {
      id: "1",
      type: "test",
      configuration: { input: "demo" }
    };
    <Component 
      input={{ configJsObject: dataConfig }} 
      formSubmitAction={func} 
    />
    

内容的提问来源于stack exchange,提问作者moys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 23:31:10