【前端】taro 启动文件app.ts 修改成app.tsx

简介: 【前端】taro 启动文件app.ts 修改成app.tsx

先说下为啥会有这一篇?我们知道tsx 其实就是 typescript xml ,即能支持写诸如<View/><Text/><div/>等标签的脚本。


但使用 taro init 初始化的工程,入口文件不是tsx,而是ts。这意味着,我不能在里面写标签,更意味着我不能写一个全局Context(不熟悉的可以先科普一下:react context),让所有的页面(比如tabbar)都能用到。


原因很简单:Context的数据流也是自上而下的,没有一个顶层的Context把所有的子组件包住,这些子组件就没法公用同一个Context。


如果在 ts 中写标签会出现如下的错误:


image.png


而Context 在react中使用的时候也是以标签的形式出现的,这意味着我想用一个在顶层的全局Context,就必须要把 app.ts 改成 app.tsx



修改一


直接将app.ts 改成 app.tsx

结果如下:

image.png

app.ts 改成 app.tsx 后,报错已经消失,并且微信开发者工具也能正常调试代码。

但问题没有这么简单,因为:我们的react-native端,会出现白屏:

image.png




修改二


app.ts 改成 app.tsx后,把里面的View 这种有实际意义的标签给去了,只保留<ContextAuth.Provider> 这种没有实际意义,只为了提供全局Context的标签。


import React, {Component, PropsWithChildren, useContext, useState} from 'react'
import './app.scss'
import {ContextAuth} from "./register-center/context-app/auth/context-auth";
import Taro from '@tarojs/taro'
import {View} from "@tarojs/components";
export default function App(props) {
  // const {} = props
  const contextAuth = useContext(ContextAuth)
  const [auth, setAuth] = useState({...contextAuth[0]})//权限控制
  return <ContextAuth.Provider value={[auth, setAuth]}>{props.children}</ContextAuth.Provider>
}

image.png

image.png


可以看到,改完后,react-native端恢复正常。


至于为啥react-native端在app.tsx中包含View时会出现异常,我就没做深入研究了,感兴趣的朋友,可以交流一波。这次的试验的结果是:app.tsx中允许出现Context标签但不能包含有实际意义的标签





目录
相关文章
|
8天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
48 0
|
2月前
|
前端开发
914.【前端】Taro集成towxml渲染markdown文档
914.【前端】Taro集成towxml渲染markdown文档
60 2
|
2月前
|
前端开发 UED
前端解析Excel文件
前端解析Excel文件
36 0
|
2月前
|
JavaScript
uni-app中关于格式化时间的js文件
uni-app中关于格式化时间的js文件
32 0
|
2月前
|
JavaScript Android开发
【问题篇】打包Vue-cli3创建的vue项目成App的apk文件
【问题篇】打包Vue-cli3创建的vue项目成App的apk文件
29 0
|
5月前
|
前端开发 JavaScript 程序员
[前端学习]文件组件专题
[前端学习]文件组件专题
34 1
|
5月前
|
JSON JavaScript 前端开发
前端 ex2json 用于 vue/react/js 将 xls、xlsx、csv 文件转成 json 数组
前端 ex2json 用于 vue/react/js 将 xls、xlsx、csv 文件转成 json 数组
97 0
|
5月前
|
XML Java Android开发
Android App开发网络通信中使用okhttp下载和上传图片、文件讲解及实战(超详细实现用户注册信息上传 附源码)
Android App开发网络通信中使用okhttp下载和上传图片、文件讲解及实战(超详细实现用户注册信息上传 附源码)
156 0
|
5月前
|
前端开发 JavaScript API
前端 excelex 包可将数据保存为 xls、xlsx、csv、txt 文件(支持单元格样式、合并单元格等)
前端 excelex 包可将数据保存为 xls、xlsx、csv、txt 文件(支持单元格样式、合并单元格等)
65 1
|
14天前
|
存储 前端开发 API
对象存储OSS产品常见问题之获取文件结构并在前端页面展示如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
21 0