【问题标题】:ipyvuetify can't set prop to static textipyvuetify 无法将 prop 设置为静态文本
【发布时间】:2022-01-14 19:05:10
【问题描述】:

你好互联网的好人;)

新工作,新语言。我需要在 Jupiter 笔记本中修改 Ipyvuetify Vue 代码以使用静态道具。

我能够拼凑简单的 vue 示例
我可以在 vue 文件中以声明性方式通过分配的静态文本设置子组件的属性。 它在 js 变体中工作得很好。 https://jsfiddle.net/wu9bxL1n/1/

但同样的方法在 ipyvuetify 语法中似乎根本不起作用。没有错误没有什么。分配给子道具的静态字符串只是被默默地忽略,我似乎无法在文档中找到任何原因。我错过了什么?

这是 ipyvuetify 语法复制/粘贴到 Jupiter 笔记本中的最小可能代码。

import ipyvuetify as v
import traitlets
​
class AA(v.VuetifyTemplate):
    template = traitlets.Unicode('''
    <template>
        <v-card-title>{{label}}</v-card-title>
    </template>
    <script> export default { name: "aa", props: ['label'] } </script>''').tag(sync=True)
    
    label = traitlets.Unicode('But this is showing default text instead').tag(sync=True)
​
class BB(v.VuetifyTemplate):
    template = traitlets.Unicode('''
    <template>
    <div>
      <v-text-field label="This text was set statically" ></v-text-field>
      <aa           label="This text was set statically"></aa>
    </div>
    </template>''').tag(sync=True)
   
    components = traitlets.Dict(default_value={'aa': AA()}).tag(sync=True, **v.VuetifyTemplate.class_component_serialization)
​
BB()

​---

Output:

This text was set statically
But this is showing default text instead

【问题讨论】:

    标签: jupyter-notebook static vue-props ipyvuetify


    【解决方案1】:

    哦,男孩。

    答案是在某些 3rd 方库源代码中看到的一些未记录的行为。

    我们需要使用

    default_value={'aa': AA }

    而不是

    default_value={'aa': AA()}

    然后将静态道具设置为您自己的组件将起作用。 我知道很奇怪。

    希望解决某些问题的人会发现这一点。 保重伙计们;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-03
      • 1970-01-01
      • 2018-10-28
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 2011-08-16
      • 1970-01-01
      相关资源
      最近更新 更多