Vyhledávání na webu

javascript - Jak přepínat boolean stav v Reactu a TypeScriptu?


Jsem nový v Reactu a TypeScriptu.

Chci přepínat boolean stav (true/false) pomocí handler funkce. Četl jsem jiné příspěvky o tom, jak to udělat v ES6, ale není mi jasné, jak toho dosáhnout v TypeScriptu.

Zatím mám:

  const MyComponent = () => {
    const [collapseUpper, setCollapseUpper] = React.useState(true);

    const handleCollapse = () => {
      collapseUpper = !setCollapseUpper;
    };

    return (
       <Link onClick={handleCollapse}>More</Link>
       <Collapse in={collapseUpper}>
         //content

Ale nemohu to rozchodit.

Může mi někdo ukázat správný směr?

Odpověď č. 1

Takto by se to mělo dělat:

const handleCollapse = () => {
  setCollapseUpper(!collapseUpper);
};

Budete muset zavolat setCollapseUpper, abyste řešili jakékoli aktualizace stavu.

Ještě lepší je, že můžete použít funkci zpětného volání k aktualizaci stavu:

const handleCollapse = () => {
  setCollapseUpper((prevState) => !prevState);
};

Odpověď č. 2

musíte změnit hodnotu collapseUpper, ne setCollapseUpper:

const [collapseUpper, setCollapseUpper] = React.useState(true);

const handleCollapse = () => {
  setCollapseUpper(!collapseUpper);
};

Související články