尝试在Vue.js中通过渲染传递道具并观察它们

Pet*_*and 8 javascript state parent-child vue.js

我在使用vue.js中的CreateElement/render然后观看它时,通过创建的子节点将父节点传递给父节点时遇到了麻烦.

这是我的父组件

Vue.component('my-drawing', MyDrawing)

new Vue({
  el: '#drawing',
  mounted() {
    Bus.$on('emitColorSelection', (emitString) => {
      console.log("inside socket.js/my-drawing and emitString is ", emitString);
      this.useColor = emitString;
      console.log('inside socket.js/my-drawing and this.useColor after set is ', this.useColor);
    })

  },
  data() {
    return {
      channel2: null,
      canvases: [],
      useColor: 'rgba(255, 0, 0, 1)'
    }
  },
  render(createElement) {
    return createElement(MyDrawing, {
      props: {
        useThisColor: this.useColor
      }
    })
  }
});
Run Code Online (Sandbox Code Playgroud)

所以你可以看到这里是我取一些总线的发射值然后我把它传递给useColor.我想将此值作为useThisColor传递给我的渲染函数.

这就是孩子.

<template>
  //my template stuff
</template>

<script>
//stuff
  watch: {
    useThisColor (n, o) {
      console.log("useThisColor watch, ", n, o) // n is the new value, o is the old value.
    }
  } 
//stuff continues
Run Code Online (Sandbox Code Playgroud)

所以这个表标签不输出.我也尝试将模板中的道具放在一起,以及尝试在Updated:标签上输出它.我还尝试使用引号在父级中设置道具.到目前为止没有任何工作,我有点困惑.如果有人有任何想法,请告诉我.

Ber*_*ert 7

我希望这里的问题是您只是没有useThisColor在MyDrawing组件上定义属性。

这是一个例子