react+ts 学习记录一

相关命令介绍

全局安装react
yarn global add create-react-app
创建react应用
create-react-app 应用名称
创建支持ts语法的react应用
create-react-app 应用名称 --template typescript

创建成功的目录

在这里插入图片描述

demo报错信息整理

在这里插入图片描述
解决方案:
变成import ContentPage from './others/content’即可

报错二:this.state的属性报错=》类型“Readonly<{}>”上不存在属性“collapsed”
在这里插入图片描述
解决办法
在这里插入图片描述

这里有一个内容需要注意

React.Component有两个可选的参数分别为props和state(React.Component<PropsType,StateType>)

报错三:Cannot invoke an object which is possibly ‘undefined’.
在这里插入图片描述
解决方案:加上判断即可

在这里插入图片描述

报错四:Could not find a declaration file for module ‘react-router-dom’

解决方案: 安装ts支持的react-router-dom (这里我用的是版本5)
yarn add @types/react-router-dom@5

报错五:
在这里插入图片描述

第一步npm run eject展示webpack的配置

第二步在webpack.config.js中添加如下配置

在这里插入图片描述

解决方法:

至此 demo初始化已完成,效果展示如下
在这里插入图片描述

demo 实例中的一些介绍

1.react-router-dom的简单应用

import { Component, ReactNode } from "react";
import {BrowserRouter as Router,Route} from 'react-router-dom'
import App from '../App'
class Routers extends Component<any,any>{
    constructor(props:any) {
        super(props)
    }
    render(): ReactNode {
        return(
            <Router>
                <Route path="/" component={App}/>
            </Router>
        ) 
    }
}
export default Routers

由于本案例使用的react版本低于18,故而入口文件有所调整

import ReactDOM from 'react-dom'
// import ReactDOM from 'react-dom/client';
import './index.css';
import Routers from './routers';
// import reportWebVitals from './reportWebVitals';

// const root = ReactDOM.createRoot(
//   document.getElementById('root') as HTMLElement
// );
// root.render(
//   <React.StrictMode>
//     <App />
//   </React.StrictMode>
// );
// 当react版本低于18时使用如下方式
ReactDOM.render(
  <Routers/>,
  document.getElementById('root') as HTMLElement
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值