[NervJS/taro]引入Taro,ts校验报错:'View' cannot be used as a JSX component.

2024-07-15 621 views
9
相关平台

微信小程序

复现仓库

https://github.com/ALmanCoder/Taro3.0.25-issues.git 小程序基础库: 2.13.1 使用框架: React

复现步骤

1、CLI升级到3.0.25,重新创建应用,引入import Taro from "@tarojs/taro"; 2、就会出现'View' cannot be used as a JSX component; 3、CLI3.0.17版本没有问题。

期望结果

引入Taro,TS校验不报错

实际结果

引入Taro,TS校验报错

环境信息
Taro CLI 3.0.25 environment info:
    System:
      OS: macOS 10.15.4
      Shell: 5.7.1 - /bin/zsh
    Binaries:
      Node: 12.16.1 - /usr/local/bin/node
      Yarn: 1.22.5 - ~/.yarn/bin/yarn
      npm: 6.14.4 - /usr/local/bin/npm
    npmPackages:
      @tarojs/components: 3.0.25 => 3.0.25 
      @tarojs/mini-runner: 3.0.25 => 3.0.25 
      @tarojs/react: 3.0.25 => 3.0.25 
      @tarojs/runtime: 3.0.25 => 3.0.25 
      @tarojs/taro: 3.0.25 => 3.0.25 
      @tarojs/webpack-runner: 3.0.25 => 3.0.25 
      babel-preset-taro: 3.0.25 => 3.0.25 
      eslint-config-taro: 3.0.25 => 3.0.25 
      react: ^16.10.0 => 16.14.0 
    npmGlobalPackages:
      typescript: 4.1.3

回答

2

未能从仓库复现问题,应该是本地 ts 版本或相关问题导致,可以检查下 tsconfig 中 compilerOptions.jsx 配置

9

我也有这个问题,最后发现这个报错是全局的@vue在搞怪。 应该和编辑器的代码检查设置有关

3

我这边也是这个错误,查看react的ts声明发现有报错 image 最后发现是vue也有jsx的声明, image 导致和react的jsx声明起冲突了,把vue的依赖删掉就好了,但是我这个vue的依赖的位置有点奇怪,在user下面的node_modules里,可能之前依赖装的有问题,删掉就好了

9

请问是怎么解决的?

8

 谢谢你朋友!

5

我使用的React的,删掉了node_modules中的@vue文件夹,错误消失

1

 谢谢你朋友!

9

太感谢了,终于解决了这个红线问题

0

 谢谢你朋友!

3

亲测可用, it works on my project.

2

引入antd-mobile也报一样的错误

5

 谢谢你朋友!

6
  "resolutions": {
    "@types/react": "^17.0.2"
  },

这个也是其中原因之一,存在多个 @types/react 版本

7

 谢谢你朋友!

2

亲测有效

1

 谢谢你朋友!

3

我的vue 依赖也是user 目录下的 node_modules ,怪不得搞半天一点反应都没有

8

 谢谢你朋友!