Флакторы дерева дизайна муравья не обновляются при очистке соответствующего значка до тех пор, пока вручную не провереныJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Флакторы дерева дизайна муравья не обновляются при очистке соответствующего значка до тех пор, пока вручную не проверены

Сообщение Anonymous »

У меня есть компонент дерева дизайна муравья, а также значки, которые соответствуют элементам в компоненте дерева. Когда я "очищаю значок", он должен снять с собой соответствующую коробку для этого элемента на дереве. Но это не делает этого, даже если утверждение FecedKeys, которое передается в компонент дерева, правильно обновляется. Только после того, как я сначала снял коробку, а затем очищаю другие значки, которые на самом деле обновляется компонент дерева, а соответствующие коробки становятся неконтролированными. < /P>
import { useRef, useEffect, useMemo, useState } from "react";
import { Tree } from "antd";
import type { TreeDataNode, TreeProps } from "antd";
import { Badge } from "@/components/ui/badge";
import { X } from "lucide-react";
import { filterBrand } from "@/app/(dashboard)/custom-audiences/brands-tree-utils";

type BrandsTreeProps = {
treeData: TreeDataNode[];
checkedKeys: TreeProps["checkedKeys"];
onChecked: (checkedKeys: string[]) => void;
};

export default function BrandsTree({
treeData,
checkedKeys,
onChecked,
brandCharacteristics,
handleBadgeClear,
}: BrandsTreeProps) {
const [selectedNodes, setSelectedNodes] = useState([]);

useEffect(() => {
const finalArr = Object.values(brandCharacteristics).flat();
setSelectedNodes(finalArr);
}, [brandCharacteristics]);

const onCheck = (checkedKeysValue: TreeProps["checkedKeys"]) => {
if (checkedKeysValue === undefined) {
return;
}

let checkedKeysArray: string[];

if (Array.isArray(checkedKeysValue)) {
checkedKeysArray = checkedKeysValue.map(String);
} else {
checkedKeysArray = checkedKeysValue.checked.map(String);
}

onChecked(checkedKeysArray);
};

return (

Brands

{selectedNodes.length > 0 &&
selectedNodes.map((item, index) => {
return (


{item}
{
handleBadgeClear(item);
}}
>




);
})}

{!!treeData.length && (

)}

);
}

< /code>
function onChecked(checkedKeys: CheckedKeys) {
if (!Array.isArray(checkedKeys)) {
return;
}
const keys = checkedKeys.map(String);
form.setValue("brand_ids", convertBrandHierarchyToIds(brands, keys));
setCheckedKeys(keys);

setIsSizeRefreshRequired(true);
}

function handleBadgeClear(brandName: string) {
const updatedBrandKeywordCheckedKeys = filterBrand(
brandKeywordCheckedKeys,
brandTreeData,
brandName,
);

onChecked(updatedBrandKeywordCheckedKeys);
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... adge-until
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Флакторы Primeng P-Tree не проверены
    Anonymous » » в форуме Javascript
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Предотвратить закрытие при нажатии на раскрывающую очередь дизайна муравья
    Anonymous » » в форуме Javascript
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Выпадающая часть дизайна муравья с Trigger ContextMenu закрывается мгновенно при падении - как держать его открытым?
    Anonymous » » в форуме Javascript
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Удалить заполнение по умолчанию из таблицы дизайна муравья
    Anonymous » » в форуме CSS
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Стол дизайна муравья с вертикальным и горизонтальным свитком
    Anonymous » » в форуме CSS
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Javascript»