当前位置: 首页 > 知识库问答 >
问题:

前端 - vue2项目this.$createElement创建的自定义组件里访问不了vuex,怎么解决?

晋鹤轩
2023-05-18

情况是这样,打算用this.$message提示信息,然后里面放上自己自定义的组件private-table,然后组件里用到了vuex,也就是this.$store里的数据,但是是undefined,请问出现这个问题的原因是啥,怎么解决?

          const h = this.$createElement          
          this.$message({
            message: h('div', {}, [
              h('div', {}, ['导入失败,Excel中存在重复信息:']),
              h('private-table', {
                props: {
                  table: {},
                  columns: [],
                  data: res.result,
                  'i-header-cell-style': 'height:36px;padding:0px;background-color:#FAFAFA;color:#333333;'
                }
              })
            ]),
            type: 'error'
          })

共有2个答案

姬和歌
2023-05-18

vue2里,element-ui的message是通过Vue.extend动态创建的,是一个独立的vue实例,不共享router、store这些项目初始实例才有的属性

如果都是用this.$message的形式调用的话,可以重写这个方法,在其通过Vue.extend创建message组件时,把项目初始实例传入parent选项中

或者改造private-table,把用到的router、store都是用import的方式手动引入

祁飞扬
2023-05-18
const h = this.$createElement;
this.$message({
  message: h('div', {}, [
    h('div', {}, ['导入失败,Excel中存在重复信息:']),
    h('private-table', {
      props: {
        table: {},
        columns: [],
        data: res.result,
        store: this.$store,
        'i-header-cell-style': 'height:36px;padding:0px;background-color:#FAFAFA;color:#333333;'
      }
    })
  ]),
  type: 'error'
});

private-table组件:

<script>
export default {
  props: {
    // ...
    store: Object 
  },
  created() {
    console.log(this.store); 
  }
};
</script>
 类似资料:
  • 场景是这样的,一张新建/编辑页,编辑页的数据是接口获取的。页面里的表单元素里有一些复杂的计算逻辑,请问: 1.计算逻辑是写在methods里,然后表单元素change或者input的时候调用它,还是直接写在computed里计算它? 2.我一开始是这么写的,computed计算出需要的结果a,b,c,d(且这四个值又能通过表单元素被修改,如input)。然后watch监听a,b,c,d的变化,赋值

  • 用的编辑器是webstorm,发现在node modules里打断点没用。

  • vue2前端跨域问题,后端放置到公网上,所有人都可以访问,还配置了access-control-allow-origin为*,前端拿接口地址到浏览器可以拿到数据,使用apiPost测试,接口可以拿到数据,但是放到前端代码里面就跨域,如下图 vue2前端跨域问题

  • 有时Android提供的组件无法满足我们的需求,因此需要自定义组件. 创建自定义组件的一般步骤: 1.新建类文件,要继承View或View的子类. 2.覆写父类的一些方法. 3.使用自定义组件类. Android Studio会通过模板帮我们自动生成文件,并覆写方法. 我们只需要根据自已的实际需求修修攺改就好了. 操作步骤: 菜单栏: File —> New —>UI Component —> C

  • 举例说一下,比如有2个函数,我要对他们做相同的前置判断条件。

  • 怎么让span相对于最外层的div固定定位?(fixed),为什么最外层div的postion设置为了relative,span的postion设置为fixed,top:0,right:0后,会跑到整个页面的右上角?