uni-app NVUE 引用 radio 报 r._$bus.off is not a function

uni-app NVUE 引用 radio 报 r._$bus.off is not a function

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 I7-9750H
HBuilderX 正式
HBuilderX版本 3.2.3
手机系统 Android
手机版本号 Android 11
手机厂商 华为
手机机型 荣耀20
页面类型 nvue
打包方式 云端
项目创建方式 HBuilderX

示例代码:

<radio-group class="uni_row radio-group" @change="radioChange($event,0,SFItems)">
    <label class="uni_row" v-for="(item,index) in SFItems" :key="index">
        <radio class="rradio" :id="item.name" :value="item.name" :checked="item.checked"></radio>
        <text class="radiotxt">{{item.value}}</text>
    </label>
</radio-group>

SFItems: [ {
name: 1,
value: ‘首次发布’,
checked: false
},
{
name: 0,
value: ‘非首发’,
checked: false
}
]

操作步骤:

<radio-group class="uni_row radio-group" @change="radioChange($event,0,SFItems)">
    <label class="uni_row" v-for="(item,index) in SFItems" :key="index">
        <radio class="rradio" :id="item.name" :value="item.name" :checked="item.checked"></radio>
        <text class="radiotxt">{{item.value}}</text>
    </label>
</radio-group>

SFItems: [ {
name: 1,
value: ‘首次发布’,
checked: false
},
{
name: 0,
value: ‘非首发’,
checked: false
}
]

预期结果:

  • 不爆错

实际结果:

  • 爆错 r._$bus.off is not a function

bug描述:

在nvue页面引用 radio-group,radio 报错。r._$bus.off is not a function


更多关于uni-app NVUE 引用 radio 报 r._$bus.off is not a function的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

用radio示例代码能出现你的问题吗? 此设备在旧版是否正常? 此版本使用其他设备是否正常?

更多关于uni-app NVUE 引用 radio 报 r._$bus.off is not a function的实战教程也可以访问 https://www.itying.com/category-93-b0.html


应该是多了一个id绑定的问题造成了。谢谢

这是一个已知的 uni-app nvue 平台问题,主要原因是 radio 组件在 nvue 中的事件总线处理存在兼容性问题。

解决方案:

  1. 升级 HBuilderX 到最新版本(建议 3.3.0+),新版已修复此问题。

  2. 临时解决方案(如果无法立即升级):

    • 使用 radio@click 事件替代 radio-group@change
    • 手动管理选中状态:
<view class="uni_row radio-group">
    <label class="uni_row" v-for="(item,index) in SFItems" :key="index" @click="handleRadioClick(index)">
        <radio class="rradio" :id="item.name" :value="item.name" :checked="currentIndex === index"></radio>
        <text class="radiotxt">{{item.value}}</text>
    </label>
</view>
export default {
    data() {
        return {
            SFItems: [...],
            currentIndex: -1
        }
    },
    methods: {
        handleRadioClick(index) {
            this.currentIndex = index
            // 处理业务逻辑
        }
    }
}
回到顶部