react hook 的 setState 似乎没有更新值
react hook's setState does not appear to be updating the value
我有树状组件,其中展开和展开节点以显示和隐藏更多节点。
我在玩 hooks,我对 clickhandler 应该如何工作有点困惑:
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
在这种情况下如何工作?
您正在改变原始 rootNode
对象,您应该将新对象传递给 setRootNode()
我有树状组件,其中展开和展开节点以显示和隐藏更多节点。
我在玩 hooks,我对 clickhandler 应该如何工作有点困惑:
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
在这种情况下如何工作?
您正在改变原始 rootNode
对象,您应该将新对象传递给 setRootNode()