为什么vue3二次封装el-transfer,数据更新视图不刷新?

新手上路,请多包涵

为el-transfer添加了一个右侧列表上下排序的功能,但是点击之后数组数据更新了,视图却没刷新.代码如下:

const publicMobileMethod = (direction: string) => {
  let index;
  if (chooseItem.value.length === 1) {
    keyList.value.forEach((element, i) => {
      if (element === chooseItem.value[0]) {
        index = i;
      }
    });
    if (index === 0) {
      ElMessage.warning("The first item cannot be moved up.");
      return;
    }

    if (index === keyList.value.length - 1 && direction !== "handleUp") {
      ElMessage.warning("The last item cannot be moved down.");
      return;
    }
    const changeItem = keyList.value[index];
    // 这里视图还能更新
    keyList.value.splice(index, 1);

    // 这个if一写就不行了;
    if (direction) {
      direction === "handleUp" &&
        keyList.value.splice(index - 1, 0, changeItem);
      direction === "handleDown" &&
        keyList.value.splice(index + 1, 0, changeItem);
      console.log("keyList", keyList.value);
    }
  } else {
    ElMessage.warning("Please select only one item to move.");
    return;
  }
阅读 2k
1 个回答

image.png
这里是否有报错

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏