diff --git a/src/js/CheckboxTree.js b/src/js/CheckboxTree.js index 2e2a99ae..30f98099 100644 --- a/src/js/CheckboxTree.js +++ b/src/js/CheckboxTree.js @@ -193,6 +193,10 @@ class CheckboxTree extends React.Component { } isEveryChildChecked(node) { + if (!node.children || node.children.length === 0) { + return this.state.model.getNode(node.value).checked; + } + return node.children.every( (child) => this.state.model.getNode(child.value).checkState === 1, ); diff --git a/src/js/NodeModel.js b/src/js/NodeModel.js index 82797d56..cc05fd23 100644 --- a/src/js/NodeModel.js +++ b/src/js/NodeModel.js @@ -57,7 +57,7 @@ class NodeModel { } nodeHasChildren(node) { - return Array.isArray(node.children); + return Array.isArray(node.children) && node.children.length > 0; } getDisabledState(node, parent, disabledProp, noCascade) { @@ -163,6 +163,10 @@ class NodeModel { } isEveryChildChecked(node) { + if (!node.children || node.children.length === 0) { + return this.getNode(node.value).checked + } + return node.children.every((child) => this.getNode(child.value).checked); }