对于树选项结构,无论是点击子节点还是父节点,都展示的是当前的父节点

95 阅读1分钟

哈喽哈喽,分享一个小知识哈,废话不多说,开始啦~:

对于树选项结构,无论是点击子节点还是父节点,都展示的是当前的父节点,那么思考一下,怎么处理?

其实可以使用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

欧克啦~