taro+typescript+less踩坑指南

一、使用less module不生效的问题
1、在config/index.js文件将cssModules的enable属性置为true

cssModules: {
        enable: true, // 默认为 false,如需使用 css modules 功能,则设为 true
        config: {
          namingPattern: 'module', // 转换模式,取值为 global/module
          generateScopedName: '[name]__[local]___[hash:base64:5]'
        }
      }

2、将styles.less文件的文件名改为styles.module.less (如果使用global模式那么就可以不修改文件名)

二、用vscode开发个别标签无法自动补全
1、在首选项-用户片段-typescriptreact.json中配置

	"Print to console": {
		"prefix": "text",
		"body": [
			"<text>$1</text>",
		],
		"description": "text标签"
	}

三、想用taro-ui,但是项目里使用的是less
1、安装sass解析器

yarn add @tarojs/plugin-sass

2、如果使用的是taro 3.x版本,则安装taro-ui时也需要安装3.x版本

yarn add taro-ui@3.0.0-alpha.10

3、在app.ts中加入,这种是全量引入,可以在这里按需引入

import 'taro-ui/dist/style/index.scss'

四、html标签不生效
可能是由于taro版本和plugin-html版本不一致导致
注意注意注意:要先装plugin-sass,再安装plugin-html,否则装不上

五、怎么设置启动页
方法1、默认app.config.ts中的pages属性的第一个为启动页
方法2、app.config.ts中设置entryPagePath属性
方法3、微信开发者工具中添加编译模式,设置启动页

六、不是合法域名
微信开发者工具-详情-本地设置-不校验合法域名

七、调用chooseLocation失效
可能的原因:在app.config.ts中未配置:

  permission: {
    "scope.userLocation": {
      desc: "你的位置信息将用于小程序位置接口调用"
    }
  },

八、父传子会报错不存在属性
子组件不要声明为FC类型

九、scrollview的scrolltop属性无效
设置scrolltop的值必须改变,比如设为-1然后再设为0则有效

十、使用echarts
https://blog.csdn.net/haiditao/article/details/120417193

做可移动的图表时报错,t.preventDefault is not a function
删除t.preventDefault

Cannot read property ‘refresh’ of null
示例代码中ref使用的是回调形式,而我自己的代码使用的是函数式组件,应该改用useRef,至此在taro中使用echarts的问题基本全部解决。

修改了源码怎么搞?
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
如果你想在 Taro + Vue 3 + TypeScript 的小程序项目中使用 Pinia,你可以按照以下步骤进行配置: 1. 首先,确保你已安装了 Taro 的 Vue 3 模板。你可以使用以下命令创建一个新的 Taro + Vue 3 + TypeScript 项目: ```bash npx @tarojs/cli@next init myApp --template vue3-ts ``` 2. 在项目目录下安装 Pinia: ```bash npm install [email protected] ``` 3. 在 `src/main.ts` 文件中,导入 `createPinia` 并创建一个 Pinia 实例,并将其传递给 Vue 的 `createApp` 方法: ```typescript import { createApp } from 'vue' import { createPinia } from 'pinia' const app = createApp(...) const pinia = createPinia() app.use(pinia) ... ``` 4. 接下来,你可以根据需要创建和使用 Pinia 的 store。在 `src/store` 目录下创建一个新的文件来定义你的 store,例如 `counter.ts`: ```typescript import { defineStore } from 'pinia' export const useCounterStore = defineStore('counter', { state: () => ({ count: 0, }), actions: { increment() { this.count++ }, decrement() { this.count-- }, }, }) ``` 5. 在组件中使用 store。在你的组件中,你可以使用 `useStore` 函数来获取 store 的实例: ```typescript import { useCounterStore } from '../store/counter' export default { setup() { const counterStore = useCounterStore() return { counterStore, } }, } ``` 6. 最后,你可以在你的组件中使用 store: ```vue <template> <div> <p>Count: {{ counterStore.count }}</p> <button @click="counterStore.increment()">Increment</button> <button @click="counterStore.decrement()">Decrement</button> </div> </template> <script setup> import { useCounterStore } from '../store/counter' const counterStore = useCounterStore() </script> ``` 这样,你就可以在 Taro + Vue 3 + TypeScript 的小程序项目中使用 Pinia 了。如果你遇到任何问题,请提供更多的上下文和相关代码,我将尽力帮助你解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值