-
Notifications
You must be signed in to change notification settings - Fork 49k
Closed
Closed
Copy link
Labels
Component: Developer ToolsStatus: UnconfirmedA potential issue that we haven't yet confirmed as a bugA potential issue that we haven't yet confirmed as a bugType: Bug
Description
Website or app
Repro steps
Unfortunately I don't know how to reproduce this bug. It was just logged to Sentry.
It seems like there's a logic bug here though:
react/packages/react-devtools-shared/src/devtools/views/Components/TreeContext.js
Lines 386 to 416 in bd4784c
let flatIndex = 0; | |
if (selectedElementIndex !== null) { | |
// Resume from the current position in the list. | |
// Otherwise step to the previous item, relative to the current selection. | |
for ( | |
let i = elementIndicesWithErrorsOrWarnings.length - 1; | |
i >= 0; | |
i-- | |
) { | |
const {index} = elementIndicesWithErrorsOrWarnings[i]; | |
if (index >= selectedElementIndex) { | |
flatIndex = i; | |
} else { | |
break; | |
} | |
} | |
} | |
let prevEntry; | |
if (flatIndex === 0) { | |
prevEntry = | |
elementIndicesWithErrorsOrWarnings[ | |
elementIndicesWithErrorsOrWarnings.length - 1 | |
]; | |
selectedElementID = prevEntry.id; | |
selectedElementIndex = prevEntry.index; | |
} else { | |
prevEntry = elementIndicesWithErrorsOrWarnings[flatIndex - 1]; | |
selectedElementID = prevEntry.id; | |
selectedElementIndex = prevEntry.index; | |
} |
If selectedElementIndex
is null or elementIndicesWithErrorsOrWarnings
is empty, then flatIndex
would be 0 still– and this statement would result in an undefined entry:
prevEntry =
elementIndicesWithErrorsOrWarnings[
elementIndicesWithErrorsOrWarnings.length - 1
];
How often does this bug happen?
Only once
DevTools package (automated)
react-devtools-inline
DevTools version (automated)
4.24.4
Error message (automated)
Error: can't access property "id", n is undefined
Error call stack (automated)
React ErrorBoundary Error: can't access property "id", n is undefined
at TreeContextController(./node_modules/react-devtools-inline/dist/frontend.js:20793:10)
at SettingsContextController(./node_modules/react-devtools-inline/dist/frontend.js:21419:10)
at ModalDialogContextController(./node_modules/react-devtools-inline/dist/frontend.js:28526:10)
at DevTools_DevTools(./node_modules/react-devtools-inline/dist/frontend.js:44535:10)
at useMemo(./src/ui/components/SecondaryToolbox/ReactDevTools.tsx:269:1)
at ConnectFunction(./node_modules/react-redux/es/components/connectAdvanced.js:220:22)
at Redacted(./src/ui/components/Redacted.tsx:5:83)
at SecondaryToolbox(./src/ui/components/SecondaryToolbox/index.tsx:119:25)
at useGetShowVideo(./src/devtools/client/shared/components/splitter/SplitBox.tsx:25:37)
Error component stack (automated)
No response
GitHub query string (automated)
No response
Metadata
Metadata
Assignees
Labels
Component: Developer ToolsStatus: UnconfirmedA potential issue that we haven't yet confirmed as a bugA potential issue that we haven't yet confirmed as a bugType: Bug