diff --git a/src/picker/index.js b/src/picker/index.js index 5b5a379b1..689c6323c 100644 --- a/src/picker/index.js +++ b/src/picker/index.js @@ -89,11 +89,13 @@ export default createComponent({ const { children } = cursor; let defaultIndex = cursor.defaultIndex ?? +this.defaultIndex; - while ( - children[defaultIndex].disabled && - defaultIndex < children.length - 1 - ) { - defaultIndex++; + while (children[defaultIndex] && children[defaultIndex].disabled) { + if (defaultIndex < children.length - 1) { + defaultIndex++; + } else { + defaultIndex = 0; + break; + } } formatted.push({ diff --git a/src/picker/test/__snapshots__/cascade.spec.js.snap b/src/picker/test/__snapshots__/cascade.spec.js.snap index 09e3c4952..df19f4545 100644 --- a/src/picker/test/__snapshots__/cascade.spec.js.snap +++ b/src/picker/test/__snapshots__/cascade.spec.js.snap @@ -6,6 +6,37 @@ exports[`disabled in cascade 1`] = ` `; +exports[`should move to first option when all options are disabled 1`] = ` +