У меня есть древовидный компонент, в котором узлы расширяются и не расширяются, чтобы показать и скрыть больше узлов.
У меня есть игра с крючками, и я немного запутался, как должен работать обработчик кликов:
const Tree = ({ tree }) => {
const [rootNode, setRootNode] = useState(getHierarchy(tree));
const clickHandler = (e) => {
rootNode.data.isExpanded = !rootNode.data.isExpanded;
setRootNode(rootNode);
}
return <ExpandableTree tree={tree} onClick={clickHandler} />
}
Проблема в том, что значение rootNode.data.isExpanded
никогда не меняется.
Как useState
работает в этом сценарии?