tsx 编写react 遇见类型“Readonly<{}>”上不存在属性XXX解决办法
这样的问题是TS语法类型检测的时候会报错,这时候可以给state个props生命类型,问题解决,代码如下:
import React from "react"; type StateType = { name: string; number: number; }; type propType = { name: string; number: number; }; interface Test1 { state: StateType; props:propType } class Test1 extends React.Component { constructor(props) { super(props); this.state = { name: "", number: 2 }; } render() { console.log(this.props.name); return ( <div> <div> <label htmlFor="">单号</label> <input type="text" value={this.state.name} onChange={e => this.setState({ name: e.target.value })} /> </div> <div> <label htmlFor="">创建用户</label> <input type="text" value={this.state.number} onChange={e => this.setState({ number: e.target.value })} /> </div> <div></div> </div> ); } } export default Test1;
这个
propType和
StateType
就是声明类型的地方,如此问题解决,网上还有一种方案是把
React.Component改成
React.Component<any, any>
但是这样一来对state和props的类型检测就失去意义了,所以不太建议使用
但是其实还能这么写,看一下TS的解释会发现
React.Component<any, any>
这里面的第一个any可以是props的类型,第二个any可以是state的类型,即:
class Test1 extends React.Component<propType,StateType>
问题一样可以解决
积累小的知识,才能成就大的智慧,希望网上少一些复制多一些原创有用的答案
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2016-06-02 JS对输入判断变化屏蔽中文输入法输入时连续触发事件的方法
2015-06-02 oracle 的rowid和rownum