收藏
回答

安卓系统下局部利用setData进行局部刷新无效

问题模块
API和组件

开发时,利用了setData方法进行了局部刷新的功能,页面中使用了wx:if进行值判断从而显示不同的内容。在ios系统下功能正常,但是安卓系统下无法进行页面的改变,后台请求也正常完成,但是页面就是不刷新。有人遇到过这样的问题吗?大佬有解决方法吗?暂时只用了华为荣耀8的安卓系统测试了一下。

最后一次编辑于  2017-11-16
回答关注问题邀请回答
收藏

8 个回答

  • double牛
    double牛
    2017-11-16

    我也是醉了,可能还是之前哪里代码有点问题吧,现在调整赋值顺序,问题复现不了了。

    2017-11-16
    赞同
    回复
  • 吴森
    吴森
    2017-11-16

    换一下顺序?这是什么玄学,哈哈,码一下,等更新原因

    2017-11-16
    赞同
    回复
  • double牛
    double牛
    2017-11-16

    是的额,确实用"==="更加严谨。

    2017-11-16
    赞同
    回复
  • 漫无止境
    漫无止境
    2017-11-16

    怀疑是函数没有运行、页面数据没改变。另外,为什么不用“===”呢?

    2017-11-16
    赞同
    回复
  • double牛
    double牛
    2017-11-16

    暂时解决了,应该不是block的问题,我将setData方法中赋值的顺序调换了一下位置就OK了。但是不明白为什么,不过还是谢谢你帮忙看问题。

    2017-11-16
    赞同
    回复
  • 吴森
    吴森
    2017-11-16

    不知道是不是因为你的渲染条件加载多个block上的原因,文档是这样说的,你改下试试


    2017-11-16
    赞同
    回复
  • double牛
    double牛
    2017-11-16

    /**

    * 关闭求助 回调

    */

    function closeQuestionSuc(data) {

        if (data == 'success') {

              _this.setData({

                shareShow: true,

                questionStatus:2,

            })

        }

    }


    <block wx:if="{{questionStatus == 1}}">

        <view class='wth-box' bindtap='closeQuestionTap'>

            <button class='closedem iconfont now'>关闭求助</button>

        </view>

    </block>

    <block wx:elif="{{questionStatus == 2}}">

        <view class='wth-box' bindtap='republishTap'>

            <button class='resetem iconfont'>恢复求助</button>

        </view>

    </block>

    <block wx:else>

        <view class='wth-box' bindtap='closeQuestionTap'>

            <button class='closedem iconfont now'>关闭求助</button>

        </view>

    </block>


    代码格式粘贴了有点不对齐,将就着看一下。一个回调的js之后进行的setData操作。



    2017-11-16
    赞同
    回复
  • 吴森
    吴森
    2017-11-16

    贴代码

    2017-11-16
    赞同
    回复