uni-app 小程序开发工具中 uni-swipe-action-item 点击报错 ReferenceError: isPC is not defined

uni-app 小程序开发工具中 uni-swipe-action-item 点击报错 ReferenceError: isPC is not defined

开发环境 版本号 项目创建方式
Windows 10 HBuilderX
### 示例代码:


```html
<!-- 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> 
export default {
mixins: [badgeMix],
computed: {
...mapState('m_cart', ['cart'])
},
data() {
return {
options: [{
text: '删除',
style: {
backgroundColor: '#C00000'
}
}]
};
},
}

### 操作步骤:

~


### 预期结果:

~


### 实际结果:

~


### bug描述:

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

更多关于uni-app 小程序开发工具中 uni-swipe-action-item 点击报错 ReferenceError: isPC is not defined的实战教程也可以访问 https://www.itying.com/category-93-b0.html

31 回复

他们这个写组件的应该拖出去砍了,源码逻辑是只有在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上跑不要这么改

更多关于uni-app 小程序开发工具中 uni-swipe-action-item 点击报错 ReferenceError: isPC is not defined的实战教程也可以访问 https://www.itying.com/category-93-b0.html


非常感谢,完美解决

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

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

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

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

不会搞 我是在学习阶段

报的错 isPC是 源代码里面的

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

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

同樣這個問題 版本3.4.7

兄弟解决了吗?

回复 1***@163.com: <uni-swipe-action> <block v-for="(goods, i) in cart" :key="i">

<uni-swipe-action-item> <my-goods :goods="goods" :show-radio="true" :show-num="true" [@radio-change](/user/radio-change)="radioChangeHandler" [@num-change](/user/num-change)="numberChangeHandler"></my-goods> <template v-slot:right> <view class="slot-button" [@click](/user/click)="swipeActionClickHandler(goods)"> <text class="slot-button-text">删除</text> </view> </template> </uni-swipe-action-item> </block> </uni-swipe-action>

插槽可以用

.slot-button { background-color: #C00000; display: flex; width: 150rpx; justify-content: center; / 子元素水平居中 / align-items: center; / 子元素垂直居中 / }

这是样式

同样的问题

用插槽

在HbuilderX上安装这个插件

啥插件

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

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

用插槽可以,这是那段的代码 <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; }

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

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

谢谢 亲测有效

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

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

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

在使用 uni-app 开发小程序时,如果你遇到 uni-swipe-action-item 点击报错 ReferenceError: isPC is not defined,通常是因为在组件内部使用了未定义的变量 isPC

解决方法

  1. 检查代码中是否定义了 isPC 变量

    • 确保你在使用 isPC 的地方已经定义了该变量。比如,你可以在 data 中定义 isPC,或者在 computed 中根据平台判断是否为 PC 端。
    export default {
      data() {
        return {
          isPC: false // 根据实际情况设置
        };
      },
      mounted() {
        // 判断是否为 PC 端
        this.isPC = uni.getSystemInfoSync().platform === 'windows' || uni.getSystemInfoSync().platform === 'mac';
      }
    };
    
  2. 检查 uni-swipe-action-item 组件的使用

    • 确保你在使用 uni-swipe-action-item 时没有直接或间接引用 isPC 变量。如果有,确保它在当前作用域内已定义。
  3. 更新 uni-app 版本

    • 如果你使用的是较旧的 uni-app 版本,可能存在一些已知的 bug。尝试更新到最新版本,看看问题是否解决。
  4. 检查插件或组件的依赖

    • 如果你使用了第三方插件或组件,检查它们是否有依赖 isPC 变量。如果有,确保它们在你的项目中已正确配置。
  5. 使用 uni.getSystemInfoSync() 判断平台

    • 如果你需要根据平台进行不同的处理,可以直接使用 uni.getSystemInfoSync() 来判断当前平台。
    const platform = uni.getSystemInfoSync().platform;
    if (platform === 'windows' || platform === 'mac') {
      // PC 端处理逻辑
    } else {
      // 非 PC 端处理逻辑
    }
回到顶部