哈喽哈喽,分享一个小知识哈,废话不多说,开始啦~:
对于树选项结构,无论是点击子节点还是父节点,都展示的是当前的父节点,那么思考一下,怎么处理?
其实可以使用onChange事件,
const [selectValue, setSelectValue] = useState([])
// 选择所在区子节点的时候拿到父节点的id
const onChange = (value) => {
for (const tree of treeData) {
if (tree.value == value) {
setSelectValue(tree.value)
return tree.value
}
if (tree.children && tree.children.length > 0) {
for (const child of tree.children) {
if (child.value == value) {
setSelectValue(tree.value)
return tree.value
}
}
}
}
};
<TreeSelect
treeData={treeData}
onChange={onChange}
/>
那么,我们需要判断,第一个判断,先判断当前的每一个tree里面是否存在children,不存在children,就需要拿到改变的value在每一个tree里面找,如果找到了,就将tree.value给selectValue,也就是父节点。 第二个判断,如果有children的话,就拿改变的值在children里面找和,如果找到了,就拿到当前父节点的值,也就是tree.value给selectValue
欧克啦~