mui / mui/material-ui

[Stepper] Unnecessary rerender with StepContent

Open
#30,811 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

performance scope: stepper
Dominant language
JavaScript
Stars
99.1k
Forks
32.5k
Avg merge
2d 17h
Merged PRs (30d)
106

Description

Duplicates
  • I have searched the existing issues
Latest version
  • I have tested the latest version
Current behavior 😯

I'm trying to combine the Vertical Stepper Component with the components that I already had. Something weird happens that whenever I go to the next step, the component inside the <StepContent> render twice and it's not happening the first time the component is rendered.

Expected behavior 🤔

Better render performance with children elements inside the <StepContent>

Steps to reproduce 🕹

Codesanbox: https://codesandbox.io/s/verticallinearstepper-material-demo-forked-ossb3?file=/demo.js

Steps:

  1. See render Test Component from the console on the first time the web app is loaded
    image

  2. Click Continue

  3. See render Test Component from the console is called twice this time
    image

Context 🔦

No response

Your environment 🌎
`npx @mui/envinfo` ``` Don't forget to mention which browser you used. Output from `npx @mui/envinfo` goes here. ```

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

Start with the linked CodeSandbox at demo.js and reproduce the Vertical Stepper case by watching the Test Component console output on initial load and after clicking Continue. Trace the StepContent rendering path to identify why the child renders twice after advancing. Done means the reproduction no longer shows the unnecessary second render while preserving the step transition.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.