我是node.js的新手,并且我想要求一个类。我已经使用https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes作为参考。但是,例如,当我这样做时:
// talker.js
class Talker {
talk(msg) {
console.log(this.say(msg))
var t = setTimeout(this.talk, 5000, 'hello again');
}
say(msg) {
return msg
}
}
export default Talker
// app.js
import Talker from './taker.js'
const talker = new Talker()
talker.talk('hello')
Run Code Online (Sandbox Code Playgroud)
我得到:
talker.js:4未捕获的TypeError:this.say不是函数
应该说app.js是electronic.js渲染器进程,并且使用rollup.js捆绑在一起
任何想法为什么会这样?
更新:对不起,我在输入伪代码时忘记添加一行。当我setTimeout使用回调调用时,它实际上发生了。我已经更新了代码。
有谁知道如何将动态槽从父母传递给孙子?
我知道如何使用静态命名槽来做到这一点,但不知道如何使用动态命名槽。
例如,假设父级中的槽模板为“名称”,而孙子具有基于动态列的槽。
如何在子项中添加模板以将其传递下去。
这是我的代码的示例:
// GrandChild.vue
<template>
<table>
<tbody>
<template v-for="(item, itemIndex) in items">
<tr :key="itemIndex">
<template v-for="(col, colIndex) in columns">
<slot
v-if="$scopedSlots[col]"
:name="col"
:item="item"
/>
<td
v-else
:key="colIndex"
>
{{ String(item[col]) }}
</td>
</template>
</tr>
</template>
</body>
</table>
</template>
<script>
export default {
props: ['items', 'columns']
}
</script>
Run Code Online (Sandbox Code Playgroud)
// Child.vue
<template>
<grand-child :items="items" :columns="columns">
<!-- not sure what goes here -->
</grand-child>
</template>
<script>
export default {
props: ['items', 'columns']
}
</script>
Run Code Online (Sandbox Code Playgroud)
// Parent.vue
<template>
<child …Run Code Online (Sandbox Code Playgroud)