简体   繁体   English

类型 '(e: React.ChangeEvent ) => void' 不可分配给类型 'ChangeEventHandler '

Type '(e: React.ChangeEvent) => void' is not assignable to type 'ChangeEventHandler'

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文简体   中文繁体   英文版本 版本,有任何建议请联系yoyou2525@163.com。

When I try to call my setNewValue function inside a component on my form (using react-bootstrap ), I get the following error当我尝试在表单上的组件内调用我的setNewValue function 时(使用react-bootstrap ),出现以下错误

Type '(e: React.ChangeEvent<HTMLFormElement>) => void' is not assignable to type 'ChangeEventHandler<FormControlElement>'.

I handle my function like this我像这样处理我的 function

import { useState } from 'react';
import Form from 'react-bootstrap/Form';
import { InventoryItemType } from '../../types/InventoryItemType';
import React from 'react';

export function InventoryItem({ cardID, inventoryItem }: { cardID: string, inventoryItem: InventoryItemType }) {
    const [value, setValue] = useState(inventoryItem != null ? inventoryItem.quantity : 0);
    const [valueChanged, setValueChanged] = useState(false);

    const setNewValue = (e: React.ChangeEvent<HTMLFormElement>) => {
        const value = e.currentTarget.value;
        if (value !== '') {
            const valueNumber = parseInt(value);
            if (!isNaN(valueNumber)) {
                setValue(valueNumber);
                setValueChanged(true);
            } else {
                setValue(inventoryItem != null ? inventoryItem.quantity : 0);
                setValueChanged(false);
            }
        } else {
            setValue(inventoryItem != null ? inventoryItem.quantity : 0);
            setValueChanged(false);
        }
    };

    return (
        <div className={'w-100'}>
            <div className={'d-flex w-100 justify-content-between align-items-center my-3'}>
                <Form onSubmit={setNewValue} className={'flex-shrink-10 mx-4'}>
                    <Form.Group className='mb-0' controlId='formBasicEmail'>
                        // Error appears in this line below
                        <Form.Control type='text' placeholder={value.toString()} onChange={setNewValue} />
                    </Form.Group>
                </Form>
            </div>
        </div>
    );
}

Does it have to do with the way I'm calling the function on my Form.Control tag?这与我在Form.Control标签上调用 function 的方式有关吗? Since it does work just fine on my onSubmit attribute.因为它在我的onSubmit属性上工作得很好。

Any help is appreciated.任何帮助表示赞赏。

问题暂未有回复.您可以查看右边的相关问题.
1 如何使用 TypeScript 和 React 修复类型“{handleIndex: ()=&gt; void}”不可分配给类型“IntrinsicAttributes”? - How to fix the Type ‘{handleIndex: ()=> void}’ is not assignable to type 'IntrinsicAttributes' with TypeScript and React?

我是 Typescript 的新手,所以我不知道为什么会发生这个错误以及如何解决它......这是我的代码。 export default function SignupPage() { const [index, setIndex] = useState&lt;number&gt;(0); ...

2 类型 '(text: string) =&gt; void' 不可分配给类型 '() =&gt; void' - Type '(text: string) => void' is not assignable to type '() => void'

我正在为 TextInput 创建一个自定义组件。 但是当我尝试将 function 道具传递给自定义组件时遇到了问题。 这是代码 使用此代码,我收到此错误 我想我知道是什么原因造成的(它可能在类型声明上?)但由于这实际上是我第一次尝试 TypeScript,我真的不知道如何解决这个问题。 首先尝 ...

4 “字符串”类型的参数不可分配给“ChangeEventHandler”类型的参数<htmlinputelement> '</htmlinputelement> - Argument of type 'string' is not assignable to parameter of type 'ChangeEventHandler<HTMLInputElement>'

我正在学习 React Typescript,并且我已经定义了一个 onChange 事件道具。 但是低于提到的错误。 输入.tsx 应用程序.tsx 错误:“字符串”类型的参数不可分配给“ChangeEventHandler”类型的参数。 ...

5 Typescript nodejs Stream on event:“void”类型的参数不可分配给“(...args:any [])=&gt; void”类型的参数 - Typescript nodejs Stream on event: Argument of type 'void' is not assignable to parameter of type '(...args: any[]) => void'

这要了我的命: 当我尝试yarn start ,出现以下编译错误: 这是什么意思??? 代码在 nodejs 中,但在 typescript 中它抛出了这些错误。 我该如何解决? ...

9 Typescript 错误:类型'{ onClick: () =&gt; void; }' 不可分配给类型 'IntrinsicAttributes' - Typescript error: Type '{ onClick: () => void; }' is not assignable to type 'IntrinsicAttributes'

我是 Typescript 的新手,我很难理解为什么我的代码不起作用。 我正在尝试使用 react 和 typescript 构建轮播图像库,当我尝试在左右箭头上使用“onClick”进行导航时遇到问题。 我收到以下错误: 键入'{ onClick: () =&gt; void; }' '{ o ...

10 类型 'void' 不可分配给类型 'ObservableInput&lt;{}&gt;' - Type 'void' is not assignable to type 'ObservableInput<{}>'

这个错误在我迁移到 TS 2.2.2 后开始出现,所以我假设这就是问题所在......代码没有停止工作,但现在我收到了这个错误,我尝试了一些事情,比如返回一个空的 observable ,捕获重新抛出的异常并返回 object,似乎没有任何效果。 为什么现在会发生这种情况? 难道它不应该理解我正在 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用 TypeScript 和 React 修复类型“{handleIndex: ()=&gt; void}”不可分配给类型“IntrinsicAttributes”? - How to fix the Type ‘{handleIndex: ()=> void}’ is not assignable to type 'IntrinsicAttributes' with TypeScript and React? 类型 '(text: string) =&gt; void' 不可分配给类型 '() =&gt; void' - Type '(text: string) => void' is not assignable to type '() => void' '() 类型的参数 =&gt; () =&gt; Promise<void> ' 不可分配给“EffectCallback”类型的参数</void> - Argument of type '() => () => Promise<void>' is not assignable to parameter of type 'EffectCallback' “字符串”类型的参数不可分配给“ChangeEventHandler”类型的参数<htmlinputelement> '</htmlinputelement> - Argument of type 'string' is not assignable to parameter of type 'ChangeEventHandler<HTMLInputElement>' Typescript nodejs Stream on event:“void”类型的参数不可分配给“(...args:any [])=&gt; void”类型的参数 - Typescript nodejs Stream on event: Argument of type 'void' is not assignable to parameter of type '(...args: any[]) => void' 类型“ void”不可分配给类型“ User []” - Type 'void' is not assignable to type 'User[]' 类型“void”不可分配给类型“FormData” - Type 'void' is not assignable to type 'FormData' 类型“void”不可分配给对象 - Type 'void' is not assignable to object Typescript 错误:类型'{ onClick: () =&gt; void; }' 不可分配给类型 'IntrinsicAttributes' - Typescript error: Type '{ onClick: () => void; }' is not assignable to type 'IntrinsicAttributes' 类型 'void' 不可分配给类型 'ObservableInput&lt;{}&gt;' - Type 'void' is not assignable to type 'ObservableInput<{}>'
 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM