s***@qq.com
s***@qq.com
  • 发布:2022-05-11 09:14
  • 更新:2022-05-24 22:06
  • 阅读:1458

【报Bug】uni-swipe-action-item 点击时,在小程序开发工具中报错ReferenceError: isPC is not defined

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

HBuilderX类型: 正式

HBuilderX版本号: 3.4.7

第三方开发者工具版本号: 1.05.2204250

基础库版本号: 2.24.1

项目创建方式: HBuilderX

示例代码:
<!-- uni-swipe-action 是最外层包裹性质的容器 -->  
<uni-swipe-action>  
  <block v-for="(goods, i) in cart" :key="i">  
	    
	<!-- uni-swipe-action-item 可以为其子节点提供滑动操作的效果。需要通过 options 属性来指定操作按钮的配置信息 -->  
    <uni-swipe-action-item :right-options="options" @click="swipeItemClickHandler(goods)">  
		<!-- 在 radioChangeHandler事件处理函数中,通过事件对象e,得到商品的 goods_id 和 goods_state -->  
      <my-goods :goods="goods" :show-radio="true" :show-num="true" @radio-change="radioChangeHandler" @num-change="numberChangeHandler"></my-goods>  
    </uni-swipe-action-item>  
  </block>  
</uni-swipe-action>  
</view> </template>

export default {
mixins: [badgeMix],
computed: {
...mapState('m_cart', ['cart'])
},
data() {
return {
options: [{
text: '删除',
style: {
backgroundColor: '#C00000'
}
}]
};
},

操作步骤:

~

预期结果:

~

实际结果:

~

bug描述:

uni-swipe-action-item 点击时,在小程序开发工具中报错

2022-05-11 09:14 负责人:无 分享
已邀请:
w***@163.com

w***@163.com

他们这个写组件的应该拖出去砍了,源码逻辑是只有在h5平台才去加载isPC函数,但是在调用的时候不区分平台,所以才会其他平台全部报错。把“你自己项目路径/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js”

// #ifdef H5
import {
isPC
} from "./isPC"
// #endif

改成:let isPC=function(){return false};如果要在pc上跑不要这么改

  • 1***@qq.com

    非常感谢,完美解决


    2022-05-21 12:30

  • 1***@qq.com

    回复 1***@qq.com: 兄弟你是怎么解决的?我按照上面写的没有解决呀


    2022-05-21 13:51

  • 1***@qq.com

    回复 1***@qq.com: 可以了


    2022-05-21 14:44

  • s***@sina.com

    回复 1***@qq.com: 请问怎么改?


    2022-05-21 15:22

BoredApe

BoredApe - 有问题就会有答案。

请上传一个能重现问题的测试工程

  • 1***@163.com

    不会搞 我是在学习阶段


    2022-05-14 14:42

  • 1***@163.com

    报的错 isPC是 源代码里面的


    2022-05-14 14:43

  • 5***@qq.com

    这要什么测试工程,就是这个组件不能用 滑动的点击事件一点就报错


    2022-05-20 01:00

BoredApe

BoredApe - 有问题就会有答案。

请上传一个能重现问题的测试工程

s***@sina.com

s***@sina.com

同樣這個問題 版本3.4.7

  • 1***@163.com

    兄弟解决了吗?


    2022-05-14 14:51

  • 2***@qq.com

    回复 1***@163.com: <uni-swipe-action>

    <block v-for="(goods, i) in cart" :key="i">

    <!-- uni-swipe-action-item 可以为其子节点提供滑动操作的效果。需要通过 options 属性来指定操作按钮的配置信息 -->

    <uni-swipe-action-item>

    <my-goods :goods="goods" :show-radio="true" :show-num="true" @radio-change="radioChangeHandler"

    @num-change="numberChangeHandler"></my-goods>

    <template v-slot:right>

    <view class="slot-button" @click="swipeActionClickHandler(goods)">

    <text class="slot-button-text">删除</text>

    </view>

    </template>

    </uni-swipe-action-item>

    </block>

    </uni-swipe-action>


    2022-05-14 17:26

  • 2***@qq.com

    插槽可以用


    2022-05-14 17:27

  • 2***@qq.com

    .slot-button {

    background-color: #C00000;

    display: flex;

    width: 150rpx;

    justify-content: center;

    /* 子元素水平居中 /

    align-items: center;

    /
    子元素垂直居中 */

    }


    .slot-button-text {  
    color: #f0f0f0;
    font-size: 14px;
    }

    2022-05-14 17:27

  • 2***@qq.com

    这是样式


    2022-05-14 17:28

1***@163.com

1***@163.com

同样的问题

1***@163.com

1***@163.com

在HbuilderX上安装这个插件

2***@qq.com

2***@qq.com

我也碰到了这个问题,isPC()函数明明是定义了的,也在mpwxs.js引入了,为啥还报错呢?

DCloud_UNI_HT

DCloud_UNI_HT

无法复现问题 ,请提供可简单可复现问题的代码

1***@qq.com

1***@qq.com

用插槽可以,这是那段的代码
<uni-swipe-action>
<block v-for="(goods, i) in cart" :key="i">
<uni-swipe-action-item >
<my-goods :goods="goods" :showRadio="true" @radioChange="radioChangeHandler" :showNum="true" @numChangeHandler="numberChangeHandler"></my-goods>
<template v-slot:right>

      <view class="slot-button" @click="swipeActionClickHandler(goods)">  
        
      <text class="slot-button-text">删除</text>  
        
      </view>  
        
      </template>  
  </uni-swipe-action-item>  
  </block>  
  </uni-swipe-action>  

css样式需要改一下:

.slot-button{
background-color: #cc6ed7;
display: flex;
justify-content: center;
align-items: center;
width: 150rpx;
color: white;
font-size: 14px;
}

1***@qq.com

1***@qq.com

看最后那篇帖子,完美解决

1***@163.com

1***@163.com

找到项目路径/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js”文件里,把import {isPC} from "./isPC"删除,然后把这个文件的所有的let is_pc = isPC || false这一项 都改成false就好了

  • Kyoma

    谢谢 亲测有效


    2022-06-05 20:06

  • Kyoma

    想必在找这个问题的都是在看黑马的微信小程序的教学视频吧 啊哈哈哈 毕竟视频是2020年的,只不过发布时间是2021年底而已.


    2022-06-05 20:08

  • 2***@qq.com

    回复 Kyoma: 能问下你是怎么弄得吗,我的就不行


    2022-06-07 15:24

  • 2***@qq.com

    回复 2***@qq.com:story的 cart.js里面的removeGoodsById还有一个let is_pc = isPC || false,改了就没问题了


    2022-06-07 15:51

要回复问题请先登录注册