首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

React报错之组件不能作为JSX组件使用

原文链接:https://bobbyhadz.com/blog/react-cannot-be-used-as-a-jsx-component[1] 作者:Borislav Hadzhiev[2] 正文从这开始...~ 总览 组件不能作为JSX组件使用出现错误有多个原因: 返回JSX元素数组,而不是单个元素。...从组件中返回JSX元素或者null以外的任何值。 使用过时的React类型声明。 返回单个JSX元素 下面是一个错误如何发生的示例。...当我们需要对子节点列表进行分组而不需要向DOM中添加额外的节点,就会使用Fragments。 您可能还会看到使用了更加详细的fragments语法。...我们不允许从组件中返回undefined,因此会出现这个错误。 为了解决该错误,我们必须确保返回的代码是可达的。

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

Webpack to Vite, 为开发提速!

由于 Vite 在启动的时候不需要打包,也就意味着不需要分析模块的依赖、不需要编译。因此启动速度非常快。当浏览器请求某个模块,再根据需要对模块内容进行编译。...这里我使用了一个 cli 工具:wp2vite. 安装好之后, 直接执行: image.png 这一步, 会自动生成 Vite 的配置文件,并引入相关的依赖。 把依赖安装一下, 启动就可以了。...4. typings 文件找不到 image.png typings 文件未找到。 这个错误, 乍一看, 一头雾水。...无法识别 svg 我们在使用 svg 作为图标组件的时候, 一般是: import Icon from '@ant-design/icons'; import ErrorSvg from '@/assets...相关代码和结论 一个完整的 Vite demo 仓库地址:https://github.com/beMySun/react-hooks-i18n-template/tree/test-wp2vite image.png

3.1K20

当我尝试着把老项目 Webpack 迁移到 Vite ,发现并没有这么香

由于 Vite 在启动的时候不需要打包,也就意味着不需要分析模块的依赖、不需要编译。因此启动速度非常快。当浏览器请求某个模块,再根据需要对模块内容进行编译。...这里我使用了一个 cli 工具:wp2vite. 安装好之后, 直接执行: image.png 这一步, 会自动生成 Vite 的配置文件,并引入相关的依赖。 把依赖安装一下, 启动就可以了。...4. typings 文件找不到 image.png typings 文件未找到。 这个错误, 乍一看, 一头雾水。...无法识别 svg 我们在使用 svg 作为图标组件的时候, 一般是: import Icon from '@ant-design/icons'; import ErrorSvg from '@/assets...相关代码和结论 一个完整的 Vite demo 仓库地址:https://github.com/beMySun/react-hooks-i18n-template/tree/test-wp2vite image.png

12.4K92

现代前端工程化-基于 Monorepo 的 lerna 模块(从原理到实战)

Node fs 官网 参考2 lerna 基本使用 lerna 环境配置 lerna 在使用之前需要全局安装 lerna 工具。...lerna bootstrop --hoist 会将 packages 目录下的公共模块包抽离到最顶层,但是这种方式会有一个问题,不同版本号只会保留使用最多的版本,这种配置不太好,当项目中有些功能需要依赖老版本..."npmClient": "yarn", "useWorkspaces": true } 执行命令后在会出现如下内容,针对 packages 中的每个模块单独选择版本进行发布。...注意⚠️:这里再次声明一下,如果使用了 independent 方式进行版本控制,在 packages 内部的包进行互相依赖,每次发布之后记得修改下发布后的版本号,否则在本地调试时会出现刚发布的代码不生效问题...(这个问题本人亲自遇到过,单独说下) 框架类项目 公司组件库项目 组件库项目类似上面实战的目录结构,但是会在 packages 包下添加很多其他的模块,比如 ui-h5 , example-h5 等 工具类项目

3.8K50

低代码平台,可视化编辑器,单手打代码,解放你的双手

✨ 特性 ‍♀️ 操作简单、功能强大的可视化编辑器 开箱即用、高质量后台管理系统模版 ⚙️ 开发流程全部线上化,节省沟通、调试、运维成本 使用 React、TypeScript、nodejs、express...一个邮箱账号 用于发送验证码, 需要 开启SMTP服务 2. MySQL数据库 本项目使用mysql 5.7版本 方式1: 手动部署MySQL数据库 方式2: 购买MySQL云服务 3....全局安装yarn npm install -g yarn 开始 第一步 启动组件库服务 # 进入plugin目录 cd ..../plugin # 安装依赖 yarn # 打包输出esm模块 yarn run build:umd # 启动组件库服务 yarn run server:dist 打开 http://127.0.0.1.../server && yarn dev 打开 http://127.0.0.1:1234 预览, 可使用任意邮箱注册账号

51730

带你了解一些package.json的骚操作

由简入繁,丰富项目的 package.json 简单版的 package.json 当我们新建一个名称为 my-test 的项目使用 yarn init -y 或 npm init -y 命令后,...name 字段 name 字段定义了模块的名称,其命名需要遵循官方的一些规范和建议: 模块名会成为模块 url、命令行中的一个参数或者一个文件夹名称,任何非 url 安全的字符在模块名中都不能使用(我们可以使用...,则会抛出 404 错误: 或者,我们也可以去 npm 上输入模块名,如果搜不到,则可以使用模块名。...当用户安装带有 bin 字段的包, 如果是全局安装,npm 将会使用符号链接把这些文件链接到/usr/local/node_modules/.bin/; 如果是本地安装,会链接到....,当组件被点击,在开发环境是跳转测试环境的 sentry 地址,在正式环境则跳转正式环境的 sentry 地址。

1.8K40

都 2022 年了,手动搭建 React 开发环境很难吗?

2.2 安装配置 React 和 Typescript 根据需求,我们先安装一些必要的模块 首先是 React 的基本模块 yarn add react react-dom yarn add @types...通过二次封装 Errorboundary 组件,实现组件加载失败自动重试,并针对错误上报日志,便于后期针对性优化。...发现了错误: 因为动态处理需要通过编译 LESS 文件,所以我们还需要安装处理 LESS 语法的模块yarn add less less-loader -D 同样的,在 /scripts/webpack.dev.js...(2) 程序中引入动态类名 由于类名是动态的因此需要在组件中引入。...6.2 请求错误自动重试扩展示例 Axios 的生态也非常丰富,例如可以加入 axios-retry[11] 模块,扩展 Axios 请求错误自动尝试。

4.7K40

React背后的工具化体系

,长路径的问题通过重构项目结构来彻底解决,采用扁平化目录结构(同package下最深2级引用,跨package的经Yarn处理以顶层绝对路径引用) Flow + ES Lint Flow负责检查类型错误...Yarn workspace Yarn的workspace特性用来解决monorepo的package依赖(作用类似于lerna bootstrap),通过在node_modules下建立软链接“骗过”.../*" ], 注意:Yarn的实际处理与Lerna类似,都通过软链接来实现,只是在包管理器这一层提供monorepo package支持更合理一些,具体原因见Workspaces in Yarn | Yarn...一般解法有2种: 运行时动态依赖(注入):把两份都放进bundle,运行时根据配置或环境选择 构建处理依赖:多构建几份,不同的bundle含有各自需要的依赖模块 显然构建处理更干净一些,即mock...exceeded ' + MAX_ITERATIONS + ' iterations.' ); throw global.infiniteLoopError; } `); 注意这里使用了一个全局错误变量

1.5K20

带你了解一些package.json的骚操作

由简入繁,丰富项目的 package.json 简单版的 package.json 当我们新建一个名称为 my-test 的项目使用 yarn init -y 或 npm init -y 命令后,在项目目录下会新增一个...name 字段 name 字段定义了模块的名称,其命名需要遵循官方的一些规范和建议: 模块名会成为模块 url、命令行中的一个参数或者一个文件夹名称,任何非 url 安全的字符在模块名中都不能使用(我们可以使用...,则会抛出 404 错误: 或者,我们也可以去 npm 上输入模块名,如果搜不到,则可以使用模块名。...当用户安装带有 bin 字段的包, 如果是全局安装,npm 将会使用符号链接把这些文件链接到/usr/local/node_modules/.bin/; 如果是本地安装,会链接到....,当组件被点击,在开发环境是跳转测试环境的 sentry 地址,在正式环境则跳转正式环境的 sentry 地址。

1.8K50

常用的package.json,还有这么多你不知道的骚技巧

由简入繁,丰富项目的 package.json 简单版的 package.json 当我们新建一个名称为 my-test 的项目使用 yarn init -y 或 npm init -y 命令后,...如果该模块名从未被使用过,则会抛出 404 错误: ? 或者,我们也可以去 npm 上输入模块名,如果搜不到,则可以使用模块名。...当用户安装带有 bin 字段的包, 如果是全局安装,npm 将会使用符号链接把这些文件链接到/usr/local/node_modules/.bin/; 如果是本地安装,会链接到....,当组件被点击,在开发环境是跳转测试环境的 sentry 地址,在正式环境则跳转正式环境的 sentry 地址。...:react + typescript 项目的定制化过程)。 在项目根目录下使用 yarn eject 成功 eject 出配置后,可以发现项目目录的变化如下: ?

1.6K30

基于webpack4搭建的react项目框架

介绍 框架介绍,使用webpac构建的react单页面应用,集成antd。使用webpack-dev-server启动本地服务,加入热更新便于开发调试。...使用bundle-loader进行代码切割懒加载 手动搭建,不使用cli,大量注释适合初学者对webpack的理解学习,对react项目的深入了解 启动 git clone https://gitee.com.../wjj0720/react-demo.git cd react-demo yarn yarn start 打包 yarn build 目录结构 +node_modules -src.../Home"; // 组件使用 因为组件懒加载 是通过异步的形式引入 所以不能再页面直接以标签的形式使用 需要做使用封装 import React, {Component} from 'react... // 然后组件调用 只需要在组件导出时候 使用connent链接即可 import React, {Component} from 'react' import

71030

React(一)

React(一) 發佈於 2018-10-03 最近一周工作太忙了,用 C# 写了 API、建了数据库、部署了服务器(从 Docker 迁移回了 IIS,API 在 Docker 中的访问速度不稳定,出现随机访问超时问题...React 官方专门为我们准备了专用的 React 项目生成工具 create-react-app,只需要简单几行代码即可生成 React 项目,并且在开发还支持实时更新、自动重载等功能。...create-react-app my-app cd my-app cnpm start 或者使用 yarn 来操作: yarn create react-app my-app cd my-app... Let`s learn React ); 需要注意的是,JSX 在嵌套,最外层有且只能有一个标签,否则就会出错: // 错误!... Let`s learn React ); 如果希望渲染完成之后,DOM 中没有新增节点,我们可以使用 Fragment 组件包裹: const title = (

46110

一个基于vite构建的vue3+pinia+ts+elementUI plus的初始化开箱即用的项目模版

什么是Vite 这里借用官方的介绍: 一个开发服务器,它基于 原生 ES 模块 提供了 丰富的内建功能,如速度快到惊人的 模块热更新(HMR)。...yarn create vite 创建Vite项目的命令有很多,大同小异,但是我推荐使用 yarn的方式,谁用谁知道,命令简洁,速度更快,当然也有其它的方式,可以看一下官网的推荐方式,这个选择自己喜欢的就好了...unplugin-vue-components 按需自动导入组件 使用 Element Plus组件可以直接使用 # 选择一个你喜欢的包管理器 # NPM $ npm install element-plus...所有数据都具有响应式 轮询请求 自动处理错误重试 内置请求缓存 节流请求与防抖请求 聚焦页面自动重新请求 ⚙️ 强大的分页扩展以及加载更多扩展 完全使用 Typescript 编写,具有强大的类型提示...vite-plugin-compression 使用 gzip 或者 brotli 来压缩资源 非常推荐使用的 hooks 库 因为vue3.x和react hooks真的很像,所以就称为 hooks

64160

初识package.json,两个重要字段不能忽略

当我们在命令行工具中执行如下指令,依赖包会重新安装 // 使用 npm npm install // 使用 yarn yarn install 例如当前我们项目中,使用React ,在该字段下就会有如下配置..."react": "^18.0.0", 当你在阅读该文章,此处的依赖包以安装的最新版本为主,本书后续所有的案例都基于 React 18 来展开 react 表示该依赖包的名称,18.0.0 表示该依赖包的版本号...也可以使用 yarn.lock 锁住版本 scripts 我们启动项目使用的是 yarn start。这里的指令就是从 scripts 字段中来的。... src 所有的 React 模块组件代码都存放在该目录下。index.tsx 是所有 React 逻辑的入口文件。...')) root.render() 在该项目中,每一个文件都可以是一个独立的模块React使用 ES6 Modules 语法来引入别的模块/组件

69610

使用 webpack 5 从0到1搭建React+TypeScript 项目环境」2. 集成 css、less 与 sass

使用 webpack 5 从0到1搭建React + TypeScript 项目环境」2....集成 css、less 与 sass 上篇文章带大家使用 webpack 5集成 React 与TypeScript,同时为了提高我们的代码质量,我们会在构建中添加「类型检查」和「代码规范校验」。...2. 使用 CSS modules 当开发人员命名的类有冲突,后面的样式会覆盖前面的样式。 那么该如何解决呢?...但是TypeScript 编译出现错误 “无法找到模块'.module.css'或对应的类型声明”错误,因为 TS 无法解析CSS modules 为了解决这个错误,我们需要创建一个src/typings.d.ts...因为这样可以确保不同组件中的样式名称不会冲突。 通过上述方法,每次都需要通过 *.module.css的方式实现 CSS modules 不免有些麻烦。

1.5K10

对比三个强大的组件文档展示工具

我们的 SSC-UI-React 组件使用了docz, 实际效果: 3. dumi dumi 是一款为组件开发场景而生的文档工具。 其具有开箱即用,将注意力集中在组件开发和文档编写上。...❌ ❌ ✅ 文档内嵌在组件目录中 ❌ ✅ ✅ 将引入模块写在代码示例中 ❌ ❌ ✅ 自动生成组件库 API ❌ ❌ ✅ 支持除了组件库文档的其他类型文档的编写 ✅ ✅ ❌ 综上所述,愉快地决定将 React...React 版本不兼容问题 一通迁移操作后,我们 yarn 了一下,发现报错了: 这是 ts 报出的关于 react 类型检查的错误,一开始认为是 ts 检查多了,那么在tsconfig.json 配置...经过一通细致的检查,在 yarn.lock 中发现组件库依赖的 react 版本是 16,而 dumi 依赖的 react 版本是*,*的版本下载了 17 版本的 react,由于两个版本的 react...2.文档引用问题 由于 dumi 的文档是面向用户的,因此写文档引入组件的方法,举例: 如 Button 组件为: import { EditArea } from 'react-pro-components

2.6K50
领券