Vue3使用draggable的奇怪BUG:Error: Item slot must have only one child

版本:   "vuedraggable": "^4.1.0"

首先写一下vuedraggable不同版本在vue2中和vue3中的使用区别,以供参考:

我的Vue2项目中draggble版本为:  "vuedraggable": "^2.24.1"

使用 :list 绑定参数,draggable标签内,自己可使用v-for循环来渲染对象

<draggable
    :list="bosses"
    class="list-group"
    group="people"
    @change="drag"
    :animation="300"
    >
        <div v-for="(element, index) in bosses">
            {{element.name}}
        </div>
</draggable>

我的Vue3中draggble版本为 "vuedraggable": "^4.1.0"

使用 v-model 绑定参数,draggable标签内,使用<template #item="{ element }">代表每个对象

<draggable
    v-model="bosses"
    class="list-group"
    group="bossAccount"
    :animation="300"
    @change="teamDrag"
    item-key="id"
>
    <template #item="{ element }">					
        {{element.name}}					
    </template>
</draggable>

此外,draggble需要加上item-key属性来区分每个不同的元素,如果element有id字段,一般指定为id,其他的唯一字段也可以。

 下面说说提到的bug:报错截图:

出现这个错误一般有两个原因:

1.template标签下,根元素不止一个,例如:

<draggable
    v-model="bosses"
    class="list-group"
    group="bossAccount"
    :animation="300"
    @change="teamDrag"
    item-key="id"
>
    <template #item="{ element }">	
        <div>				
            {{element.name}}	
        </div>		
        <div>				
            {{element.level}}	
        </div>			
    </template>
</draggable>

这样写就是错误的,template标签下只允许有一个根节点,可以在最外层用一个div包裹起来即可。

<draggable
    v-model="bosses"
    class="list-group"
    group="bossAccount"
    :animation="300"
    @change="teamDrag"
    item-key="id"
>
    <template #item="{ element }">	
         <div>	
             <div>				
                {{element.name}}	
            </div>		
            <div>				
                {{element.level}}	
            </div>		
         </div>		
    </template>
</draggable>

2.另外一个原因,就是本次BUG的原因,如果你在根节点前加上了注释,也会报错

<draggable
    v-model="bosses"
    class="list-group"
    group="bossAccount"
    :animation="300"
    @change="teamDrag"
    item-key="id"
>
    <!--注释-->
    <template #item="{ element }">					
        {{element.name}}					
    </template>
</draggable>

这个BUG的产生让人感觉摸不着头脑,删掉注释就一切正常了......

### 关于线性代数中三重根对应的特征向量和特征值 #### 三重根的定义及其特性 当一个矩阵 \( A \) 的某个特征多项式的根是一个三次重复的根时,这个根被称为该矩阵的三重特征值。对于任意方阵而言,如果存在一个 k 重特征值,则其最多可以拥有 k 个线性无关的特征向量[^1]。 #### 计算方法概述 为了找到属于给定三重特征值的所有可能的线性独立特征向量,通常采用如下两种主要的方法: - **基础解系法** 对应于特定特征值 λ 的齐次线性方程组 (A - λI)x = 0 可能会有多个自由变量。通过求解此系统的通解来获得一组基底作为这些特征向量的基础解系。这一步骤涉及到高斯消元或其他适当的技术以简化增广矩阵并识别出所有的基本未知数以及它们的关系。 - **幂迭代改进算法(针对某些特殊情况)** 如果已知至少有一个非零向量 v 是对应于三重特征值 λ 的特征向量之一,并且希望寻找其他潜在的相关联但不同的特征向量 w ,那么可以通过构建新的序列 {v, Av, ..., Akv} 并对其进行正交化处理得到额外的候选者。然而这种方法并不总是适用,特别是在面对更复杂的结构或数值稳定性问题的时候[^3]。 #### 实际操作示例 考虑下面的例子说明如何具体执行上述过程: 假设我们有这样一个具体的矩阵 \( A \),它具有形式为 \( p(\lambda)=(\lambda-\mu)^3=det(A-\lambda I)\) 的特征多项式,其中 μ 表示那个唯一的三重特征值。现在要找出所有与之关联的特征向量。 ```python import numpy as np # 假设这是我们的输入矩阵 A 和它的唯一三重特征值 mu A = np.array([[...], [...]]) mu = ... def find_eigenvectors_for_triple_root(matrix, triple_value): """ 寻找对应于指定三重特征值的所有线性独立特征向量 参数: matrix (numpy.ndarray): 输入矩阵 triple_value (float): 已知的三重特征值 返回: list of numpy.ndarray: 所有的线性独立特征向量列表 """ # 构造辅助矩阵 M=(matrix-triple_value*I) identity_matrix = np.eye(len(matrix)) auxiliary_matrix = matrix - triple_value * identity_matrix # 使用SVD分解获取核空间的一组标准正交基 _, singular_values, vh = np.linalg.svd(auxiliary_matrix) rank_of_M = sum(singular_values > 1e-8) # 判断秩的有效维度数量 null_space_basis_vectors = vh.T[:, -(len(vh)-rank_of_M):] return [vector.reshape(-1,) for vector in null_space_basis_vectors] # 调用函数计算结果 resulting_vectors = find_eigenvectors_for_triple_root(A, mu) print(resulting_vectors) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风间琉璃c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值