当前位置: 首页 > 面试题库 >

类型'void'不能分配给类型'((event:MouseEvent)=> void)| 未定义”

齐承泽
2023-03-14
问题内容
   import * as React from "react";
   import "./App.css";
   import PageTwo from "./components/PageTwo";

    export interface IPropsk {
        data?: Array<Items>;
        fetchData?(value: string): void;
    }

    export interface IState {
       isLoaded: boolean;
       hits: Array<Items>;
       value: string;
    }
    class App extends React.Component<IPropsk, IState> {
        constructor(props: IPropsk) {
        super(props);

        this.state = {
        isLoaded: false,
        hits: [],
        value: ""
        this.handleChange = this.handleChange.bind(this);
  }

  fetchData = val => {
        alert(val);
  };

  handleChange(event) {
       this.setState({ value: event.target.value });
  }


  render() {
   return (
      <div>
        <div>
           <input type="text" value={this.state.value} onChange= {this.handleChange}
           <input type="button" onClick={this.fetchData("dfd")} value="Search" />
      </div>
     </div>

    );

  }
}

 export default App;

在上面的代码示例中,我尝试通过使用参数表单击按钮来调用方法( fetchData )。

 <input type="button" onClick={this.fetchData("dfd")} value="Search" />

错误是

类型’void’不能分配给类型’((event:MouseEvent)= > void)| 未定义”。


问题答案:

在您的代码中,this.fetchData("dfd")您正在 调用 该函数。函数返回voidvoid不能期望onClick哪个功能。

创建一个调用fetchData的新函数,例如onClick={() => this.fetchData("dfd")}

更多

这是TypeScript防止的非常常见的错误



 类似资料:
  • 我有一个打字错误: 类型“(element:Conversation)=>void”的参数不可赋给类型“(value:Conversations,index:number,obj:Conversation[])=>boolean”的参数。不能将“void”类型赋给“boolean”类型。 这个错误是什么意思?提前谢谢你。

  • 问题内容: 更新到xcode 8 beta 6后,出现错误 无法将’()-> Void’类型的值分配给’(()-> Void)!’ 在以下func块的第三行: 关于修复的任何建议? 问题答案: 看来您的问题与此有关: SE-0103 尝试将您的方法标头追踪到: 与往常一样,来自新Beta的诊断消息是如此混乱和不足,但是将您的媒体资源设置为非可选将为您提供更多有用的信息。

  • 问题内容: 我正在为apache HttpClient包实现一个,如下所示: 但我希望函数不返回任何值,即。这可能吗?由于不是有效的Java类型,因此以下内容无法编译: 我想可以替换为以返回对象,但这并不是我真正想要的。 问 :是否有可能安排在这样一种方式,我可以返回此回调局面从? 问题答案: 泛型仅处理对象类。泛型不支持void和基本类型,您不能将它们用作参数化类型。您必须改用Void。 你能说

  • void 类型 万能类型,在需要时再具体指定;在描述一段还没有具体使用的内存时需要使用void类型。 void * 类型的指针指向的内存是尚未确定类型的,因此我们后续可以使用强制类型转换,强行将其转为各种类型。这就是void类型的最终归宿——被强制类型转换成一个具体的类型。 void * 万能指针,void * 可以指向任何类型的数据,在32位系统下,占4个字节 void* malloc(size

  • 这是我的水果 现在我正在导入另一个typescript文件中的fruit.ts。这是我的 当我做的时候 我得到一个错误: 类型“string”不能分配给类型“orange”“apple”“banana”“ 如何将字符串赋给自定义类型fruit的变量?

  • 这是一个类中的函数,允许你双击和单击手势。它在Swift 2.3中运行良好,但在转换到Swift 3后,它抛出了一些错误。我怎么也想不明白。我评论了它们发生的地方。