这个地方一直很困惑,之前写vue的同学认为这里不能写变量,所以我们工程里现在都是这么写的 wx:key="index"
教程中wx:key的写法该更新了https://developers.weixin.qq.com/miniprogram/dev/component/radio.html [图片] [图片] wx:key的写法该更新了
2020-10-14已解决,感谢楼上的同学 query.exec((rect)=>{ console.log(rect); this.wrapH = rect[0].height; this.itemH = rect[1].height; // 添加高度 this.setData({wrapH: this.wrapH}); }); wxml中设置高度 <view id="wrap" class="wrap" animation="{{animation}}" style="height:{{wrapH}}px;">//查询到高度之后,赋值上去 <view id="{{'item'+index}}" class="a {{'item'+index}}" wx:for="{{list}}" wx:key="index" > <view>{{item}}</view> </view> </view> <view class="expand" catchtap="expand" wx:if="{{list.length > 0 }}"></view>
如何解决wx.createAnimation()动画中设置高度,第一次没有动画效果的问题?调试基础库:2.10.3 api: wx.createAnimation() js: Page({ /** * 页面的初始数据 */ data: { list: ['1', '2', '3'], expand: true }, wrapH: 0, itemH: 0, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { const query = wx.createSelectorQuery(); query.select('#wrap').boundingClientRect() query.select('#item1').boundingClientRect() query.exec((rect)=>{ console.log(rect); this.wrapH = rect[0].height; this.itemH = rect[1].height; }); }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, expand() { let height; if (this.data.expand) { height = this.itemH; } else { height = this.wrapH; } const animation = wx.createAnimation({ timingFunction: 'ease', duration:500, // transformOrigin: '0 0 0', // delay: 1000 }); animation.height(height); animation.step(); const aaa = animation.export() this.setData({ animation: aaa, expand: !this.data.expand }); } }) wxml: <view id="wrap" class="wrap" animation="{{animation}}" > <view id="{{'item'+index}}" class="a {{'item'+index}}" wx:for="{{list}}" wx:key="index" > <view>{{item}}</view> </view> </view> <view class="expand" catchtap="expand" wx:if="{{list.length > 0 }}"></view>
2020-10-14经过验证,文件修改之后,小程序开发工具未能识别,依然读取的是缓存。通过关闭后重新打开、预览,能够生成新的小程序
小程序HTTP调用无法成功?通过 jenkins + gitLab 实现小程序自动化预览。 实现思路: 1)jenkins 每隔五分钟轮询 gitlab 上面的代码,如果有更新,就把代码拉下来。 2)清除原来的文件夹,重新编译(gulp 命令做的),重新安装依赖。 3)修改 ext.json 文件,通过 http 调用打开小程序,然后调用预览的 http 接口。 期望结果: 修改生效,修改完成后的小程序预览成功。 实际结果:失败,文件中的 ext.json 文件虽然被修改成功,但是预览生成的依然是之前配置的小程序。 对比试验:直接手动修改小程序开发工具中的 ext.json 文件,然后再点击预览,能够成功。 [代码]#!/usr/bin/env node[代码] [代码]const fs = require([代码][代码]'fs'[代码][代码])[代码][代码]const path = require([代码][代码]"path"[代码][代码])[代码][代码]function[代码] [代码]deleteDir(url){[代码][代码] [代码][代码]var[代码] [代码]files = [];[代码][代码] [代码] [代码] [代码][代码]if[代码][代码]( fs.existsSync(url) ) { [代码][代码]//判断给定的路径是否存在[代码][代码] [代码] [代码] [代码][代码]files = fs.readdirSync(url); [代码][代码]//返回文件和子目录的数组[代码][代码] [代码][代码]files.forEach([代码][代码]function[代码][代码](file,index){[代码][代码] [代码][代码]var[代码] [代码]curPath = path.join(url,file);[代码][代码] [代码] [代码] [代码][代码]if[代码][代码](fs.statSync(curPath).isDirectory()) { [代码][代码]//同步读取文件夹文件,如果是文件夹,则函数回调[代码][代码] [代码][代码]deleteDir(curPath);[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{ [代码][代码] [代码][代码]fs.unlinkSync(curPath); [代码][代码]//是指定文件,则删除[代码][代码] [代码][代码]}[代码][代码] [代码] [代码] [代码][代码]});[代码][代码] [代码] [代码] [代码][代码]fs.rmdirSync(url); [代码][代码]//清除文件夹[代码][代码] [代码][代码]}[代码][代码]else[代码][代码]{[代码][代码] [代码][代码]console.log([代码][代码]"给定的路径不存在!"[代码][代码]);[代码][代码] [代码][代码]}[代码] [代码]}[代码][代码]deleteDir([代码][代码]'/Users/yujiahui/.jenkins/workspace/xls/dist/'[代码][代码])[代码][代码]const exec = require([代码][代码]'child_process'[代码][代码]).execSync[代码][代码]exec([代码][代码]'npm install'[代码][代码])[代码][代码]exec([代码][代码]'npm run test_build'[代码][代码])[代码][代码]const content = [代码][代码]'{"description":"项目配置文件。","setting":{"urlCheck":false,"es6":true,"postcss":true,"minified":true,"enhance":true},"miniprogramRoot":"./","compileType":"miniprogram","appid":"wxqqqqqqqqqqqqqqq","projectname":"xls","condition":{"search":{"current":-1,"list":[]},"conversation":{"current":-1,"list":[]},"plugin":{"current":-1,"list":[]},"game":{"currentL":-1,"list":[]},"miniprogram":{"current":-1,"list":[]}}}'[代码][代码]fs.writeFileSync([代码][代码]'./dist/project.config.json'[代码][代码], content, [代码][代码]'utf-8'[代码][代码])[代码][代码]sed[代码] [代码]-i [代码][代码]''[代码] [代码]'s/\("extAppid": "\).*/\1wxaaaaaaaaaaa",/g'[代码] [代码].[代码][代码]/dist/ext[代码][代码].json # 修改小程序 id,并预览[代码][代码]sed[代码] [代码]-i [代码][代码]''[代码] [代码]'s/\("extTenantId": "\).*/\11aaaaaaaa",/g'[代码] [代码].[代码][代码]/dist/ext[代码][代码].json #这个是我们自定的内容[代码][代码]# 打开微信开发者工具[代码][代码]/Applications/wechatwebdevtools[代码][代码].app[代码][代码]/Contents/Resources/app[代码][代码].nw[代码][代码]/bin/cli[代码] [代码]-o[代码][代码]port=$([代码][代码]cat[代码] [代码]"/Users/yujiahui/Library/Application Support/微信开发者工具/Default/.ide"[代码][代码])[代码][代码]echo[代码] [代码]"微信开发者工具运行在${port}端口"[代码][代码]return_code=$(curl -sL -w %{http_code} http:[代码][代码]//127[代码][代码].0.0.1:${port}[代码][代码]/open[代码][代码])[代码][代码]if[代码] [代码][ $return_code == 200 ][代码][代码] [代码][代码]then[代码][代码] [代码][代码]echo[代码] [代码]"返回状态码200,devtool启动成功!"[代码][代码]else[代码][代码] [代码][代码]echo[代码] [代码]"返回状态码${return_code},devtool启动失败"[代码][代码] [代码][代码]exit[代码] [代码]1[代码][代码]fi[代码][代码]echo[代码] [代码]"发布开发版!"[代码][代码]wget -O $BUILD_ID.png http:[代码][代码]//127[代码][代码].0.0.1:${port}[代码][代码]/preview[代码][代码]?projectpath=[代码][代码]/Users/yujiahui/[代码][代码].jenkins[代码][代码]/workspace/xls/dist[代码]问题:sed 修改后的文件,小程序开发工具不能识别吗?依然调用的是之前的缓存,所以生成的也是之前配置中的小程序吗?
2019-10-28[图片]
小程序开发工具中的调试工具太卡了?版本: windows 64 稳定版 Stable Build (1.02.1907160) 描述: 1.每次切换到console 和 sources这两个面板 ,每次点击都需要5s以上才会渲染过来 2.sources面板中文件夹中点击,都卡死在那里,没有反应 3.断点调试的时候,有些代码行不能打断点。
2019-08-14