当前位置: 首页 > 知识库问答 >
问题:

类型“Readonly

邹毅
2023-03-14

在尝试将文件转换为打字稿时,我得到了上述错误

handleToggle() {
  const { toggleTodo, id } = this.props;    // <-- Error
  toggleTodo(id);
}

我尝试过几种方法,比如向我为这个组件添加的接口添加属性、添加绑定语句、为这些属性添加方法等等。但是它们都会出现错误,通常是上述错误。只需添加打字脚本检查,似乎我不需要做很多更改。我在这里看到的其他类似问题和答案没有帮助。例如,我将这些项目添加到界面道具中,但仍然出现错误。

到目前为止,我拥有的代码(在这次转换之前运行良好)是

import React, { Component } from 'react'

interface TodoItemProps { // Added this interface for props
  title: string,
  completed: boolean,
}
export default class TodoItem extends Component {
  constructor(props:TodoItemProps) { // used inteface from abovereact 
    super(props);
    this.handleToggle = this.handleToggle.bind(this);
    this.handleRemove = this.handleRemove.bind(this);
  }
  handleToggle() {
    const { toggleTodo, id } = this.props; // < -- errors here.
    toggleTodo(id);
  }
  handleRemove() {
    const { removeTodo, id } = this.props;
    removeTodo(id);
  }
  render() {
    const { title, completed } = this.props;
    return (
      <div style={{ width: 400, height: 25 }} >
        <input
          type="checkbox"
          checked={completed}
          onChange={this.handleToggle} />
        {title}
        <button style={{ float: 'right' }} onClick={this.handleRemove}>x</button>
      </div>
    )
  }
}

我确实有

@types/react
@types/react-node

作为开发依赖项。

不知道怎么解决这个问题

共有1个答案

岳阳文
2023-03-14

目前,您还没有告诉typecript这个组件需要什么道具,所以它默认为一个空对象{}。您确实在构造函数中放置了一个类型,但这不是将其应用于整个类的正确位置。

要解决此问题,请更改以下内容:

export default class TodoItem extends Component {

为此:

export default class TodoItem extends Component<TodoItemProps> {
 类似资料:
  • 前两章讨论了几种保持 DRY 和灵活性的函数式编程技术: 函数组合(function composition) 部分函数应用(partial function application) 柯里化(currying) 这一章依旧围绕代码灵活性而来,不过不再讨论作为头等公民的函数,而是类型系统(注意:并不是要真的去研究类型系统)。 你将学习 类型类 ! 可能你会觉得这没有实际意义,认为这是被 Haske

  • 当我运行我的代码时,它返回了错误:类型“Future”不是类型转换中“List”类型的子类型。我该如何修复它?它是在我从Firebase获取数据之前匹配引擎运行的?我试图将wait添加到List demoProfiles=getdata()作为wait List;但它返回错误。我真的是新手,这个问题已经困扰了我一整天。请帮帮我

  • 我是新手。我正在开发一个测验应用程序,并拥有以下三个dart文件: 主要的飞奔 question.dart answer.dart 当我在android studio中的android上运行应用程序时,出现以下错误: ══╡ 小部件库捕获的异常╞═══════════════════════════════════════════ 生成MyApp时引发了以下类型的错误(脏,状态:_MyAppSta

  • JPA存储过程参数注释 https://docs.oracle.com/javaee/7/api/javax/persistence/StoredProcedureParameter.html 根据文档,它的类型是JDBC类型。 它应该是Java类型,因为它是类(不是 java.sql.Types.xxx 或JDBCType)?

  • 在存储到本地数据库之前,将字符串转换为对象的正确方法是什么? 这是的输出: 我试图将其转换为CreatedBy对象 创造的 这里是我的本地表列 错误

  • 我正在开发一个依靠API REST调用的flutter应用程序。来自API的响应有点复杂。当调用我的API(例如:api/产品)时,我可以从日志中看到响应:但是我有这个错误: 类型列表 StackTrace: [更新]:退货产品响应。fromJson(response)而不是response ProductsRespository: ProductsBloc: 回应: ApiProvider: 模