uniapp重新渲染页面_uni-app之数据状态改动后页面不刷新踩坑

今天有个需求,在onshow里面执行函数,请求过来一堆代取的包裹(快递),然后勾选之后把数据集合放到一个list里面给后端发过去,这些包裹状态就变成了已取,正常情况下应该是到了下一个界面,但是uni-app的request请求并没有实时更新,这些勾选完的快递还在,只有刷新页面才会消失,我这时候的第一想法是在勾选完之后发送list的函数之后重新调用页面加载函数,但是服务器处理数据明显需要时间,要远不及js的执行顺序来的快,但是这种重新请求数据的逻辑上是可行的,所以我利用了一个延时器,在一秒之后重新请求,这个时间足够服务器响应,也就完成了一个数据虚假实时更新,希望uni-app以后能更加完善,解决掉这个问题,还有v-for在自定义组件失效,以及诸多坑。

页面加载函数

getWaiting() {var that=thisthat.Post('http://192.168.3.148:8084/takeServiceOrder/findServiceOrderBySubstitute',

{

serviceUserId: that.userId,

status:0},

data=>{

that.listone.length= 0;for (var i = 0; i < data.length; i++) {

that.listone.push({

id: data[i].id,

takeDeliveryOrderId: data[i].takeDeliveryOrderId,

parcelId:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
重新渲染页面,可以使用 `uni.$emit` 和 `uni.$on` 方法来实现。首先,在需要重新渲染页面中,注册一个事件监听器: ``` // MyPage.vue export default { created() { uni.$on('update', this.handleUpdate) }, destroyed() { uni.$off('update', this.handleUpdate) }, methods: { handleUpdate() { // 重新渲染页面的逻辑 } } } ``` 然后,在需要重新渲染的地方,使用 `uni.$emit` 方法触发事件: ``` // SomeComponent.vue export default { methods: { update() { uni.$emit('update') } } } ``` 至于多种设置全局变量及全局变量重新赋值,可以使用 VueX 进行状态管理。在 `store/index.js` 文件中定义全局变量和方法: ``` import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { globalVariable: 'initial value' }, mutations: { setGlobalVariable(state, value) { state.globalVariable = value } }, actions: { updateGlobalVariable({ commit }, value) { commit('setGlobalVariable', value) } } }) export default store ``` 然后在需要使用全局变量的组件中,使用 `mapState` 将全局变量映射到组件的计算属性中,并使用 `mapActions` 将更新全局变量的方法映射到组件的方法中: ``` // SomeComponent.vue import { mapState, mapActions } from 'vuex' export default { computed: { ...mapState(['globalVariable']) }, methods: { ...mapActions(['updateGlobalVariable']), updateValue(newValue) { this.updateGlobalVariable(newValue) } } } ``` 这样,就可以在组件中使用全局变量并更新它了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值