- 关于 data中 属性值的数据类型是否可以为Function
这个问题困扰我很久了,请官方给一个释疑吧。 根据官方文档在以下几处对于 data 数据类型的描述: [图片] [图片] [图片] [图片] 所有描述均未提及 data 或 properties 数据类型是否可以为 Function 类型,但根据实际测试发现,data 中的数据类型允许为 Function,并且可以在 Page 和 Componennt 之间传递,即 setData({key: value}) 中的 value 也可为 Function 类型。但 Function 类型的属性无法传递到渲染层,即不能在 .wxml 文件中调用 Function 类型的属性。 所以,按我理解在微信小程序中,data,properties 或 setData 中的属性值,其实支持 Function,并且可以在页面或组件之间传递,只是 Function 类型不能在 .wxml 文件中使用而已。所谓的“仅支持设置可 JSON 化的数据”只是针对渲染层而言。对吗?
2019-03-01 - 小程序中使用 div, span 等 HTML 标签有没有什么问题
一直都很规范地按照官网的方式使用 view 或 text 等组件进行开发。 最近有人直接在小程序中书写了 HTML 代码,全部使用 div 等元素书写 .wxml 文件,无论是开发工具还是手机微信里打开页面,竟然也都正常显示了。 隐隐中觉得这种方式貌似可行,又不知道会不会有什么问题。能够请官方回应一下,到底该不该使用 HTML 的元素来书写 .wxml? 这样开发者在约束其他人遵循统一的开发规范时,心里也有点底气啊
2019-01-19 - navigateTo API 在小程序和JSSDK中表现不一致
- 当前 Bug 的表现(可附上截图) [图片] 根据文档,小程序 web-view 组件加载 H5 页面,可以通过 JSSDK 提供的 wx.miniProgram.navigateTo, wx.miniProgram.redirectTo, wx.miniProgram.switchTab 来进行页面跳转。 例如:现有首页 /pages/index/index,且该首页位于 TabBar 中。 在小程序跳转首页时,调用 wx.navigateTo({url: "/pages/index/index", success() {console.log('success');}, fail() {console.log('fail');}}),此时 fail 回调被调用。 在 web-view 中的 H5 跳转首页时,调用 wx.miniProgram.navigateTo({url: "/pages/index/index", success() {console.log('success');}, fail() {console.log('fail');}}),此时 success 回调被调用。 - 预期表现 在 web-view 的 H5 当 navigateTo 一个 tabbar page 的时候,success 回调被调用。 同理,redirectTo 和 switchTab 都存在无论跳转的 page 是否是 tabbar page,它们都永远调用 success 回调的情况。
2018-12-15 - 自定义组件初始化时因为默认值不同导致 prop 的 observer 被调用
- 当前 Bug 的表现(可附上截图) 在自定义组件 Component 的 properties 中定义 prop 的缺省值以及 observer 函数。 当使用该组件需要初始化该组件时,若 prop 接收外部传入的实参与该 prop 的默认值不相等时,会导致 observer 被立即调用一次。 - 预期表现 prop 的缺省值应该是组件未接收到外部传参时,使用的缺省值作为默认值,这属于组件初始化工作,不应该视为 prop 发生了变化。 所以当组件初始化时,如果 prop 接收的外部传参与缺省值不相等时,不触发 observer 调用是不是更合理一点? - 提供一个最简复现 Demo 代码片段:wechatide://minicode/8SCwknmx7D3z
2018-10-23 - 请教官方回应一下是否要将 setData API 修改为只读
- 需求的场景描述(希望解决的问题) 因为官方没有为 Page 和 Component 提供 computed 和 watch 属性,所以个人通过重新封装 setData 方法实现了这部分功能。 今天换了个电脑,重新安装了开发者工具后发现页面报错,原因是无论是 Page 还是 Component 的 setData 方法都已经变成只读属性,没有办法覆写该属性。 发现 setData 变成只读属性的微信开发者工具:Mac 版 v1.02.1809260 发现 setData 属性可以被覆写的微信开发者工具:Mac 版 v1.02.1809111 - 希望提供的能力 欲哭无泪啊,API 属性修改要不要这么任性啊!两个这么小的版本之间更改了这么重要的特性,项目受影响很大啊!!~~请官方给一个明确的说法吧!希望不要将 setData 变成只读属性。 [代码]VM3102:1 thirdScriptError[代码][代码]Cannot assign to read only property [代码][代码]'setData'[代码] [代码]of object [代码][代码]'#<r>'[代码][代码]; [Component] Lifetime Method Error @ publicComponents/EnsureLogin/index#a[代码][代码]TypeError: Cannot assign to read only property [代码][代码]'setData'[代码] [代码]of object [代码][代码]'#<r>'[代码][代码] [代码][代码]at r.a (http:[代码][代码]//127.0.0.1:59968/appservice/deps.js:415:139)[代码][代码] [代码][代码]at r.safeCallback (http:[代码][代码]//127.0.0.1:59968/appservice/__dev__/WAService.js:14:10521)[代码][代码] [代码][代码]at r.call (http:[代码][代码]//127.0.0.1:59968/appservice/__dev__/WAService.js:14:10285)[代码][代码] [代码][代码]at t (http:[代码][代码]//127.0.0.1:59968/appservice/__dev__/WAService.js:14:23150)[代码][代码] [代码][代码]at t (http:[代码][代码]//127.0.0.1:59968/appservice/__dev__/WAService.js:14:23463)[代码][代码] [代码][代码]at t (http:[代码][代码]//127.0.0.1:59968/appservice/__dev__/WAService.js:14:23405)[代码][代码] [代码][代码]at c (http:[代码][代码]//127.0.0.1:59968/appservice/__dev__/WAService.js:14:23473)[代码][代码] [代码][代码]at Function.u.pretendAttached (http:[代码][代码]//127.0.0.1:59968/appservice/__dev__/WAService.js:15:1227)[代码][代码] [代码][代码]at Object.t.attachView (http:[代码][代码]//127.0.0.1:59968/appservice/__dev__/WAService.js:16:20286)[代码][代码] [代码][代码]at D (http:[代码][代码]//127.0.0.1:59968/appservice/__dev__/WAService.js:18:1088)[代码]
2018-10-17