微信小程序開發(fā)中所碰到問題集錦
時間綁定bindtap的基礎用法
<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>
這里要注意的是data-xxx中的xxx需要小寫,否則獲取不到。
使用for循環(huán)的時候,這種方法是拿不到數據的。
需要使用currentTarget進行獲取。
bindTap的事件對象接口類型
// WechatMiniprogram.TouchEvent
switchPage(e:WechatMiniprogram.TouchEvent){
const current = +e.detail
this.setData({
mapEnlarge:current===2,
pageType:current
})
},
自定義事件類型
WechatMiniprogram.CustomEvent
引用別的分包的組件
//引用組件
"usingComponents": {
"SubmitBtn":"../../pagesLease/components/SubmitBtn/SubmitBtn"
},
// 占位組件
"componentPlaceholder": {
"SubmitBtn":"view"
}
wx.navigateBack()方法 返回并傳參
let page = getCurrentPages() //獲取當前頁面棧
let prevPage = page[page.length - 2] //代表的就是上一頁的實例,相當于this
prevPage.setData({
portList:list // 可以操作上一頁的數據
})
引入weui
// app.json
{
"useExtendedLib": {
"weui": true
}
}
微信小程序引入echarts 下載echarts微信版 地址:https://github.com/ecomfe/echarts-for-weixin

把ec-canvas放到項目中
需要使用echarts的頁面引入 xxx.json
"usingComponents": {
"ec-canvas": "/ec-canvas/ec-canvas"
}
在js文件中引入 xxx.js
import * as echarts from '../../ec-canvas/echarts';
注意:此處有個坑,如果使用ts的話,直接引入會報錯(如果是js可以忽略這一步直接第5步)解決辦法: 在頁面同級創(chuàng)建一個 yyy.js(位置放哪可以隨意)

在yyy.js中引入ec-canva并導出
import * as echarts from './ec-canvas/echarts'; export default echarts
然后在去xxx.ts中導入 yyy.js即可
import echarts from '../middleware.js'
這是目前我的解決方法,有更好的解決方法請評論區(qū)附上謝謝??!
頁面代碼xxx.wxml
<ec-canvas type="2d" id="myChart" canvas-id="myChart" ec="{{ec}}"></ec-canvas>
xxx.js / xxx.ts
// ts引入
import echarts from '../middleware.js'
// js引入
// import * as echarts from './ec-canvas/echarts';
let result = { x: ['2月', '3月', '4月', '5月', '6月', '7月'], y: [67, 68, 60, 56, 62, 76] };
function initChart(canvas: any, width: number, height: number, dpr: any) {
const chart: any = echarts.init(canvas, null, {
width: width,
height: height,
devicePixelRatio: dpr // new
});
canvas.setChart(chart);
let option = {
tooltip: {
show: false
},
grid: {
left: '3%',
right: '4%',
bottom: '4%',
top:'15%',
containLabel: true
},
xAxis: {
type: 'category',
axisLabel: {
interval: 0,
show: true
},
axisPointer: {
show: true,
type: 'shadow',
label: {
show: true,
backgroundColor: 'rgba(0,0,0,.3)',
},
shadowStyle: {
color: '#000',
opacity:0.2
}
},
axisTick: { //y軸刻度線
show: false
},
axisLine: {
lineStyle: {
color: 'rgba(255,255,255,.6)'
}
},
data: result.x
},
yAxis: {
type: 'value',
axisLine: {
show: true,
lineStyle: {
color: 'rgba(255,255,255,.6)'
}
},
splitLine: {
show: false // 不顯示網格線
}
},
series: [{
name: '總計',
type: 'bar',
stack: 'Total',
data: result.y,
itemStyle: {
normal: {
color: 'rgba(255,255,255,.5)',
barBorderRadius: [5, 5, 0, 0],
label: {
show: true,
position: 'top',
formatter: "{c}" + "kg",
textStyle: {
color: 'rgba(255,255,255,.8)'
}
}
}
},
barWidth: 28,
},
],
};
chart.setOption(option);
return chart;
}
Component({
/**
* 組件的初始數據
*/
data: {
result: [],
ec: {
onInit: initChart
}
}
})到此引入echarts結束
到此這篇關于微信小程序開發(fā)中所碰到問題集錦的文章就介紹到這了,更多相關小程序開發(fā)問題內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

