vue3 mitt兄弟组件传值

问题描述

A 页面 监听
B 页面点击事件触发后跳转到A页面

A 页面得到监听的值 但视图不更新

问题出现的环境背景及自己尝试过哪些方法

A 页面 监听 emitter.on
B 页面点击事件触发后跳转到A页面 emitter.emit('hot',item.word)

A 页面 能监听得到 结果

emitter.on('hot', word => {
    ruleForm.keyWord = word;
    console.log(ruleForm.keyWord)  可得到值
})

相关代码

粘贴代码文本(请勿用截图)
A 页面:

onMounted(async() => {
  await nextTick()
  emitter.on('hot', word => {
    // ruleForm.keyWord = word;
    ruleForm.keyWord = 'p';

    console.log(ruleForm.keyWord)
    onSearch();
  })
})

B 页面:

// 点击查询
function search(item){
emitter.emit('hot',item.word)
router.push({
    name: "keyWord"
  });
}

你期待的结果是什么?实际看到的错误信息又是什么?

期待 A页面监听到值后 视图也随之更新

感谢大家帮忙

阅读 2.5k
1 个回答

emitter.on 处理函数里的 console.log 能输出正确,那就说明 emitter 没有问题。

视图未更新,问题应该还是出在数据监控上面。

ruleForm 是怎么封装的?

给你个示例

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题