salesforce / salesforce/design-system-react

Review accessing state inside of setting state

Open
#1,992 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

combobox menu-dropdown
Dominant language
JavaScript
Stars
982
Forks
440
Avg merge
1d 21h
Merged PRs (30d)
4

Description

Currently MenuDropdown and Combobox are accessing the current state this.state in order to set a new state.

The correct procedure should be to use a callback:
https://medium.com/@voonminghann/when-to-use-callback-function-of-setstate-in-react-37fff67e5a6c

this.setState((prevState) => ({
	isOpen: !prevState.isOpen,
}));

Search for // eslint-disable-next-line react/no-access-state-in-setstate in order to fix this issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Search for // eslint-disable-next-line react/no-access-state-in-setstate and inspect the occurrences in MenuDropdown and Combobox. Replace state updates that read this.state with callback-based updates using the previous state, then confirm the search finds no remaining cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react
Domain
frontend
Issue type
Refactor
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.