1.发现问题:
小程序调用API:wx.showActionSheet 时发现无论如何都不能将其属性itemList动态赋值。
2.分析问题:
首先我认为可能是格式的问题,itemList必须要求格式为array不能为String,使用js的typeof()函数检验从后端返回的itemList值的类型(也许会用到php的类型检验函数gettype()
),console.log()函数输出,果然是String型,
另:这里先提一下小程序的一个机制,
在wx.request请求的header头部中加上 'Content-Type'
:
'application/json' ,
小程序会将wx.request请求的值得到的json解析为相应的字符串或者数组,非常强大方便
1 header: { 2 //这里写你借口返回的数据是什么类型,这里就体现了微信小程序的强大,直接给你解析数据,再也不用去寻找各种方法去解析json,xml等数据了 3 'Content-Type': 'application/json' 4 },
3.分析如何解决问题:
小程序设置好请求头部后,后端直接传json值的数组形式,小程序会自动解析数据。
4.解决问题
后端传json值的数组形式
(1)将数组$array通过
$array = json_encode($array)
编码后返回给前端,这时你得到的返回数据因为小程序已经帮你将返回json数据解析了,所以直接得到的就是数组了
(2)将itemList赋值
参考赋值方法
itemList = result.data.messsage;