React+Typescript使用接口泛型处理props

好 刚讲完组件 那么 这次 我们来看一下 数据传递的 props

还是上文的案例 例如 我们想将 title 传给Hello组件
之前我们可以直接这样
在这里插入图片描述
以一个标签属性的形式传过去

而我们在子组件中 这样去使用
在这里插入图片描述
但现在 我们从编辑器中都可以看出 这种写法已经不行了

然后 我们将 hello 组件改成这样

import * as React from "react";interface IProps {title: string
}export default class hello extends React.Component<IProps> {public constructor(props:any){super(props);}public render() {return (<div>{ this.props.title }</div>)}
}

其中 最大的不同在于 我们定义了一个接口 IProps
规定里面要有一个 string字符串类型的字段 叫title
然后 挂到 react的Component上进行泛型
然后 这是 我们的父子组件就都不报错了
在这里插入图片描述
在这里插入图片描述
当然 我们可以传多个数据

这里 我们给子组件一个 age 数字 20
在这里插入图片描述
然后子组件规定一下类型
在这里插入图片描述
这里 我们用了Number 说他是个数字类型 那么 我们父组件尝试改成 字符串试试
在这里插入图片描述
很显然 这里就报错了 这也是Ts的一个意义 能够加强代码的规范和可读性

好 最后 父组件代码如下

import Hello from "./components/hello";function App() {return (<div className="App">hello React Typescript<Hello title = "高阶组件" age = { 20 } /></div>);
}export default App;

子组件代码

import * as React from "react";interface IProps {title: string,age: number
}export default class hello extends React.Component<IProps,any> {public constructor(props:any){super(props);}public render() {return (<div><div>{ this.props.title }</div><div>{ this.props.age }</div></div>)}
}

然后 我们运行项目
在这里插入图片描述
也是没有任何问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/98701.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32编程Printf函数语法

Printf函数语法 函数声明 printf 函数的声明如下&#xff1a; // C99 前 int printf( const char *format, ... ); // C99 起 int printf( const char *restrict format, ... );参数列表 format – 是格式控制字符串&#xff0c;包含了两种类型的对象&#xff1a;普通字符和…

Java【手撕双指针】LeetCode 283. “移动零“, 图文详解思路分析 + 代码

文章目录 前言一、移动零1, 题目2, 思路分析3, 代码展示 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 &#x1f4d7; Java数据结构: 顺序表, 链表,…

Docker修改daemon.json添加日志后无法启动的问题

docker实战(一):centos7 yum安装docker docker实战(二):基础命令篇 docker实战(三):docker网络模式(超详细) docker实战(四):docker架构原理 docker实战(五):docker镜像及仓库配置 docker实战(六):docker 网络及数据卷设置 docker实战(七):docker 性质及版本选择 认知升…

spring框架,以及和spring框架相关的Java面试题和spring ioc的注入方式

目录 一.spring来源&#xff0c;以及介绍 1.spring诞生的背景 2.spring框架 介绍 3.spring框架在使用中的优点以及不足 3.1优点 3.2不足 3.3总结 4.为什么要使用spring 二.将spring框架部署在IDEA中 1.替换pom.xml 2.构建spring所需要的xml文件 三.spring的三种注入…

【VS Code插件开发】Webview面板(三)

&#x1f431; 个人主页&#xff1a;不叫猫先生&#xff0c;公众号&#xff1a;前端舵手 &#x1f64b;‍♂️ 作者简介&#xff1a;前端领域优质作者、阿里云专家博主&#xff0c;共同学习共同进步&#xff0c;一起加油呀&#xff01; &#x1f4e2; 资料领取&#xff1a;前端…

基于Java+SpringBoot+Vue的学校田径运动会管理系统【源码+论文+演示视频+包运行成功】

博主介绍&#xff1a;✌擅长Java、微信小程序、Python、Android等&#xff0c;专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不然下次找不到哟 Java项目精品实战案…

无涯教程-PHP - 常量声明

常量值不能更改。默认情况下&#xff0c;常量区分大小写。按照约定&#xff0c;常量标识符始终为大写。与变量不同&#xff0c;您不需要具有"$"的常量。 constant 函数 如名称所示&#xff0c;此函数将返回常量的值。 当您要检索常量的值但不知道其名称时&#xf…

协程框架NtyCo的实现

一、为什么需要协程&#xff1f; 讨论协程之前&#xff0c;我们需要先了解同步和异步。以epoll多路复用器为例子&#xff0c;其主循环框架如下&#xff1a; while (1){int nready epoll_wait(epfd, events, EVENT_SIZE, -1);int i0;for (i0; i<nready; i){int sockfd ev…

游戏msvcr120.dll丢失怎样修复?msvcr120.dll丢失常见原因

在尝试运行某些游戏时&#xff0c;我遇到了“msvcr120.dll丢失”的错误提示。经过一番调查和尝试&#xff0c;我成功地解决了这个问题。msvcr120.dll是Visual C Redistributable Package的一部分&#xff0c;它包含了许多运行Windows应用程序所需的库和函数。当游戏或其他应用程…

《有效调节情绪,保持工作心态平和》

工作中&#xff0c;我们有时会遇到各种挑战和困难&#xff0c;这些挑战和困难可能引发我们的负面情绪&#xff0c;例如焦虑、愤怒和沮丧等。然而&#xff0c;保持稳定的情绪是实现高效工作的重要因素之一。本文将分享如何在工作中保持稳定的情绪。 首先&#xff0c;让我们来谈谈…

CentOS系统环境搭建(十二)——CentOS7安装Elasticsearch

centos系统环境搭建专栏&#x1f517;点击跳转 CentOS 7.9安装Elasticsearch 7.17.6 文章目录 CentOS 7.9安装Elasticsearch 7.17.61.下载2.上传3.解压4.调整es占用内存5.修改es默认Java为本地Java6.修改elasticsearch配置文件7.创建用户8.Elasticsearch 后台启动与关闭9.es管…

CoordAtt注意力网络结构

源码&#xff1a; import torch import torch.nn as nn import math import torch.nn.functional as Fclass h_sigmoid(nn.Module):def __init__(self, inplaceTrue):super(h_sigmoid, self).__init__()self.relu nn.ReLU6(inplaceinplace)def forward(self, x):return self.…

【CASS精品教程】CAD2016+CASS11.0安装教程(附CASS11.0安装包下载)

文章目录 一、CAD2016_x64安装二、CASS11.0安装1. 安装程序2. 安装补丁3. 安装注册机三、CASS11.0下载地址一、CAD2016_x64安装 CASS11.0.0.8 支持 AutoCAD2010-2023,大家可以根据自己的情况安装对应的版本,本文以CAD2016为例,CAD安装过程略去。 二、CASS11.0安装 点击订…

基于Pytorch构建DenseNet网络对cifar-10进行分类

DenseNet是指Densely connected convolutional networks&#xff08;密集卷积网络&#xff09;。它的优点主要包括有效缓解梯度消失、特征传递更加有效、计算量更小、参数量更小、性能比ResNet更好。它的缺点主要是较大的内存占用。 DenseNet网络与Resnet、GoogleNet类似&#…

机器学习深度学习——transformer(机器翻译的再实现)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——自注意力和位置编码&#xff08;数学推导代码实现&#xff09; &#x1f4da;订阅专栏&#xff1a;机器…

【Golang系统开发】搜索引擎(2) 压缩词典

写在前面 这篇文章我们就给出一系列的数据结构&#xff0c;使得词典能达到越来越高的压缩比。当然&#xff0c;和倒排索引记录表的大小相比&#xff0c;词典只占据了非常小的空间。那么为什么要对词典进行压缩呢&#xff1f; 这是因为决定信息检索系统的查询响应时间的一个重…

Spring Boot 如何通过jdbc+HikariDataSource 完成对Mysql 操作

&#x1f600;前言 本篇博文是关于Spring Boot 如何通过jdbcHikariDataSource 完成对Mysql 操作的说明&#xff0c;希望你能够喜欢&#x1f60a; &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的…

lvs-DR

lvs-DR数据包流向分析 client向目标VIP发出请求。 DIR根据负载均衡算法一台active的RS&#xff08;RIR1&#xff09;&#xff0c;将RIP1所在的网卡的mac地址作为目标的mac地址&#xff0c;发送到局域网里。 RIRI在局域网中的收到这个帧&#xff0c;拆开后发现目标&#xff08…

CSRF

CSRF CSRF&#xff0c;跨站域请求伪造&#xff0c;通常攻击者会伪造一个场景&#xff08;例如一条链接&#xff09;&#xff0c;来诱使用户点击&#xff0c;用户一旦点击&#xff0c;黑客的攻击目的也就达到了&#xff0c;他可以盗用你的身份&#xff0c;以你的名义发送恶意请…

Vue-6.编译器webstorm

Vue专栏&#xff08;帮助你搭建一个优秀的Vue架子&#xff09; Vue-1.零基础学习Vue Vue-2.Nodejs的介绍和安装 Vue-3.Vue简介 Vue-4.编译器VsCode Vue-5.编译器Idea Vue-6.编译器webstorm Vue-7.命令创建Vue项目 Vue-8.Vue项目配置详解 Vue-9.集成&#xff08;.editorconfig、…