求debug小程序赋值问题,感觉一切正常就是没有正确赋值

微信小程序,我想从服务器上获取到一些图片,然后随机展示一张,点击一下图片再随机换一张。
源代码:
 data: {
    caidanimg:[]
  },
  caidan:function(res){
    var caidanimg1 = [
      "https://xxx.com/0.jpg",
      "https://xxx.com/1.jpg",
      "https://xxx.com/2.jpg"
    ]
    var randomImg1 = caidanimg1[Math.floor(Math.random() * caidanimg1.length)];
    return{
      imageUrl: randomImg1,
    success:function(res){
      this.setData({
        caidanimg : this.imageUrl,
      })
    }
    }
  },

<view class="home2" bindtap="caidan">
 <image bindtap="caidan" src="{{caidanimg}}" mode="widthFix"></image>
</view>


运行没有报错,看到caidanimg并没有被赋值,仍旧是空值。

然后页面并没有任何显示

我的解答思路和尝试过的方法 :看起来也没有报错一切正常,而且尝试将caidan()方法放在了onLoad()中也没看到给caidanimg赋值。
我想要达到的结果:我想从服务器上获取到一些图片,然后随机展示一张,点击一下图片再随机换一张。

代码写的有点问题,randomImg1 其实已经被你赋过值了,接下来要做就是把这个值再赋给caidanimg就行了。
所以将你代码中的caidan:{} 函数改为这样即可。

caidan: function (res) {
            var caidanimg1 = [
              "https://xxx.com/0.jpg",
              "https://xxx.com/1.jpg",
              "https://xxx.com/2.jpg"
            ]
            var randomImg1 = caidanimg1[Math.floor(Math.random() * caidanimg1.length)];
            this.setData({
                caidanimg: randomImg1,
            })
          }

success 打印一下 this.imageUrl 。
如果有值打印一下this 看看,也有可能是this指向问题 。 你需要 在 return 上面 var _this=this;
然后 success里_this.setData({})