Справочная информация:
Я создал элемент блока, поэтому все на веб-странице теперь является элементом .
Элемент блока определяется следующим образом: это
Код: Выделить всё
export const Block = ({ children, className = "", id = "", ...props }) => {
const handleClick = () => {
console.log("Clicks working");
};
const prevChildrenRef = useRef(children);
useEffect(() => {
if (prevChildrenRef.current !== children) {
console.log(`Content changed for id ${id}`);
prevChildrenRef.current = children;
}
}, [children, id]);
console.log(`Rendering Block with ID: ${id}`);
return (
{children}
);
};
использование:
Код: Выделить всё
{start.name}
{start.headline}
Что Я пробовал:
Я пытался назвать каждый блок раздела с помощью рекурсии, поэтому верхний корневой элемент будет иметь уникальный идентификатор в качестве имени раздела, например здесь, начало, как мы перейдите к детям, они будут иметь идентификаторы
_1, _2, _1_1 (внуки родителя) и так далее.
Вот код.< /p>
Код: Выделить всё
export const assignIds = (element, idPrefix = prefix) => l{
let counter = 1;
const childrenWithIds = React.Children.map(element.props.children, (child) => {
if (React.isValidElement(child)) {
const newIdPrefix = `${idPrefix}_${counter}`;
counter++;
return React.cloneElement(
child,
{ id: newIdPrefix, key: newIdPrefix },
assignIds(child, newIdPrefix),
);
}
return child;
});
return React.cloneElement(element, { id: idPrefix }, childrenWithIds);
};
Где мне нужна помощь
В конечном счете, я хочу зафиксировать идентификатор только того блока, который изменяется, без участия каких-либо предков, чтобы я мог динамически передавать CSS для динамического изменения его стиля.>
Подробнее здесь: https://stackoverflow.com/questions/785 ... -capture-t