收藏
回答

onload中需要发送一个以上请求,就需要重复设置setData,如何避免。

问题模块
API和组件



如图

最后一次编辑于  2017-07-31  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

11 个回答

  • 如风似水🔥
    如风似水🔥
    2017-07-31

    三个请求一起发送处理,返回结果一次性设置三个data

    2017-07-31
    赞同
    回复
  • 98
    98
    2017-07-31

    怎样发送?同步异步?,接收的结果怎么区分是哪个接口的响应?给个demo?

    2017-07-31
    赞同
    回复
  • 如风似水🔥
    如风似水🔥
    2017-07-31

    我的意思是使用统一接口,

    请求统一接口,返回N组数据,如评论是评论的,详情是详情的等等

    this.setData({

        detail:res.data.detail,

    comment:res.data.comment

    ....

    })

    2017-07-31
    赞同
    回复
  • 如风似水🔥
    如风似水🔥
    2017-07-31

    也就是后端做处理

    2017-07-31
    赞同
    回复
  • 98
    98
    2017-07-31

    前端没办法处理了么?后端处理太过麻烦了,每个页面加载时都会发几个请求,都做合并的话,要做很多新接口。我们公司后端人手严重不足。让后端去做不现实。只能自己处理了。

    2017-07-31
    赞同
    回复
  • LastLeaf
    LastLeaf
    2017-08-01

    自己写一个方法,把几个setData的请求数据合并起来即可。

    var mergedData = {}
    for(var k in data1) mergedData[k] = data1[k]
    for(var k in data2) mergedData[k] = data2[k]
    // ...
    this.setData(mergedData)


    2017-08-01
    赞同
    回复
  • 98
    98
    2017-08-01

    这样做对于性能有提升么?还是只是警告没了,其他并没卵用

    2017-08-01
    赞同
    回复
  • LastLeaf
    LastLeaf
    2017-08-01

    有的,通常情况下提升比较显著。

    2017-08-01
    赞同
    回复
  • 98
    98
    2017-08-01


    那要怎么合呢?比如上面俩个ajax请求怎么合成一个setdata,小程序不支持promise的呀

    2017-08-01
    赞同
    回复
  • LastLeaf
    LastLeaf
    2017-08-01

    记录请求返回数据,等到两个请求都到达之后再进行数据合并。

    2017-08-01
    赞同
    回复