安卓系统下局部利用setData进行局部刷新无效
发布于 6 年前 作者 xiulanxiao 300 次浏览 来自 问答

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

8 回复

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

/**

* 关闭求助 回调

*/

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操作。

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

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

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

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

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

回到顶部