Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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 类型“ChangeEvent”不可分配给React js中的类型“ChangeEvent”?_Reactjs_Typescript - Fatal编程技术网

Reactjs 类型“ChangeEvent”不可分配给React js中的类型“ChangeEvent”?

Reactjs 类型“ChangeEvent”不可分配给React js中的类型“ChangeEvent”?,reactjs,typescript,Reactjs,Typescript,我将onChange事件作为道具传递给组件,但得到的数据类型错误 父组件- const onChangeStatus=(selectType:string , e:React.ChangeEvent<HTMLSelectElement>) => { const { options } = e.target; console.log(options) } <GlobalSearchAssignmentFilter

我将onChange事件作为道具传递给组件,但得到的数据类型错误

父组件-

const onChangeStatus=(selectType:string , e:React.ChangeEvent<HTMLSelectElement>) => {
        const { options } = e.target;
        console.log(options)
    }

<GlobalSearchAssignmentFilter
                    onChangeAssignmentStatus={onChangeStatus}
                />
子组件- 我定义了一个接口,比如

interface A {
    onChangeAssignmentStatus: (
        selectType: string,
        event:React.ChangeEvent<HTMLInputElement>
    ) => void;
}
组件代码- onChangeAssignmentStatusASSIGNMENT\u状态\u属性,事件 } 输入道具={{ id:“选择多个本机”, }} > {assignmentFilterData.assignmentDispositions.mapitem:any=> {item.key} }

我正在从物料界面导入选择多选。将onChangeAssignmentStatus事件传递给子组件时出错。错误是-

Type '(selectType: string, e: React.ChangeEvent<HTMLSelectElement>) => void' is not assignable to type '(selectType: string, event: ChangeEvent<HTMLInputElement>) => void'.
  Types of parameters 'e' and 'event' are incompatible.
    Type 'ChangeEvent<HTMLInputElement>' is not assignable to type 'ChangeEvent<HTMLSelectElement>'.
      Type 'HTMLInputElement' is missing the following properties from type 'HTMLSelectElement': length, options, selectedIndex, selectedOptions, and 3 more. 
如何解决此错误?

在onChangeStatus函数中,您希望e的类型为React.ChangeEvent

但是,在界面A中,将事件类型设置为React.ChangeEvent

这两种类型不匹配,因此会出现错误

如果要修复此错误,请修改onChangeStatus函数中的参数e,使类型为React.ChangeEvent,如下所示:

const onChangeStatus=(selectType:string , e:React.ChangeEvent<HTMLInputElement>) => {
        const { options } = e.target;
        console.log(options)
}
interface A {
    onChangeAssignmentStatus: (
        selectType: string,
        event:React.ChangeEvent<HTMLSelectElement>
    ) => void;
}
此外,您还可以将onChangeStatus的类型设置为与接口A中的类型匹配。这样,typescript就可以准确地告诉您参数应该是什么类型。如果要执行此操作,可以使用['onChangeAssignmentStatus']访问onChangeAssignmentStatus的类型。

在onChangeStatus函数中,您希望e的类型为React.ChangeEvent

但是,在界面A中,将事件类型设置为React.ChangeEvent

这两种类型不匹配,因此会出现错误

如果要修复此错误,请修改onChangeStatus函数中的参数e,使类型为React.ChangeEvent,如下所示:

const onChangeStatus=(selectType:string , e:React.ChangeEvent<HTMLInputElement>) => {
        const { options } = e.target;
        console.log(options)
}
interface A {
    onChangeAssignmentStatus: (
        selectType: string,
        event:React.ChangeEvent<HTMLSelectElement>
    ) => void;
}
此外,您还可以将onChangeStatus的类型设置为与接口A中的类型匹配。这样,typescript就可以准确地告诉您参数应该是什么类型。如果要执行此操作,可以使用['onChangeAssignmentStatus']访问onChangeAssignmentStatus的类型