react+typescript给state和props定义指定类型

简介: react+typescript给state和props定义指定类型


背景

在react+typescript编写代码的时候,提示类型“Readonly<{}>”上不存在属性“xxx”

这是因为state和props没有定义类型导致的。

解决办法

  • 法一
    给state和props都定义指定类型
import React, { Component } from 'react';
type StateType = {
  username: string;
};
type propType = {
  name: string;
  [propName: string]: any;
};
interface User {
  state: StateType;
  props:propType
}
class User extends Component {
  constructor(props: any) {
    super(props);
    this.state = {
      username: '李四'
    }
  }
  render() {
    return (
      <div>
        <div className="title">用户名{this.state.username}</div>
        <div className="title">用户名{this.props.name}</div>
      </div>
    )
  }
}
export default User

法二:

React.Component改成React.Component<any, any>

但是不推荐这样,因为这样就失去了ts检测类型的意义

import React, { Component } from 'react';
export default class User extends Component<any, any> {
  constructor(props: any) {
    super(props);
    console.log(props);
    this.state = {
      username: '李四'
    }
  }
  render() {
    return (
      <div>
        <div className="title">用户名{this.state.username}</div>
        <div className="title">用户名{this.props.name}</div>
      </div>
    )
  }
}

文章参考

https://www.cnblogs.com/llcdbk/p/13029996.html

目录
相关文章
|
2月前
|
前端开发 JavaScript
学习react基础(3)_setState、state、jsx、使用ref的几种形式
本文探讨了React中this.setState和this.state的区别,以及React的核心概念,包括核心库的使用、JSX语法、类与函数组件的区别、事件处理和ref的使用。
63 3
学习react基础(3)_setState、state、jsx、使用ref的几种形式
|
2月前
|
前端开发 JavaScript
react学习(13)props
react学习(13)props
|
2月前
|
前端开发
学习react基础(2)_props、state和style的使用
本文介绍了React中组件间数据传递的方式,包括props和state的使用,以及如何在React组件中使用style样式。
31 0
|
13天前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
|
27天前
|
前端开发 JavaScript 调度
React 组件状态(State)
10月更文挑战第8天
16 1
|
2月前
|
前端开发
React添加路径别名alias、接受props默认值、并二次封装antd中Modal组件与使用
本文介绍了在React项目中如何添加路径别名alias以简化模块引入路径,设置组件props的默认值,以及如何二次封装Ant Design的Modal组件。文章还提供了具体的代码示例,包括配置Webpack的alias、设置defaultProps以及封装Modal组件的步骤和方法。
65 1
React添加路径别名alias、接受props默认值、并二次封装antd中Modal组件与使用
|
1月前
|
JavaScript 前端开发 安全
使用 TypeScript 加强 React 组件的类型安全
【10月更文挑战第1天】使用 TypeScript 加强 React 组件的类型安全
37 3
|
27天前
|
前端开发 JavaScript CDN
React Props
10月更文挑战第8天
11 0
|
2月前
|
前端开发
react学习(15)函数式组件中使用props
react学习(15)函数式组件中使用props
|
2月前
|
前端开发
react学习(14)类式组件的构造器与props
react学习(14)类式组件的构造器与props