React / React Conditionals / Switch Statements
Home /React /React Conditionals /Switch Statements

Switch Statements

Switch Statements

A switch statement evaluates a single expression against multiple discrete cases. In React, it is placed outside the JSX return and is ideal for rendering different components based on a status, role, step, or any enumerated value.

Switch is like a cleaner alternative to a long chain of if / else if / else if when checking a single variable against many possible string or number values.

function CourseStatus({ status }) {
  let badge;

  switch (status) {
    case 'published':
      badge = <span className="badge green">✓ Published</span>;
      break;
    case 'draft':
      badge = <span className="badge yellow">✎ Draft</span>;
      break;
    case 'archived':
      badge = <span className="badge gray">📂 Archived</span>;
      break;
    case 'under_review':
      badge = <span className="badge blue">👁 Under Review</span>;
      break;
    default:
      badge = <span className="badge default">Unknown</span>;
  }

  return <div>Status: {badge}</div>;
}

Switch in a Helper Function

A common pattern is to extract the switch into a helper function for reusability and cleaner components:

// Helper function — returns JSX based on step
function renderStep(step) {
  switch (step) {
    case 1: return <PersonalInfoForm />;
    case 2: return <CourseSelectionForm />;
    case 3: return <PaymentForm />;
    case 4: return <ConfirmationPage />;
    default: return <p>Invalid step.</p>;
  }
}

function Wizard({ currentStep }) {
  return (
    <div className="wizard">
      <h2>Step {currentStep} of 4</h2>
      {renderStep(currentStep)}
    </div>
  );
}