'How to toggle boolean state in React and TypeScript?
I am new to React and TypeScript.
I want to toggle a boolean state (true/false) with a handler function. I've read other posts about how to do this in ES6 but I am unclear of how to achieve this in TypeScript.
So far I have:
const MyComponent = () => {
const [collapseUpper, setCollapseUpper] = React.useState(true);
const handleCollapse = () => {
collapseUpper = !setCollapseUpper;
};
return (
<Link onClick={handleCollapse}>More</Link>
<Collapse in={collapseUpper}>
//content
But I cannot get it to work.
Can anyone point me in the right direction?
Solution 1:[1]
This is how it should be done:
const handleCollapse = () => {
setCollapseUpper(!collapseUpper);
};
You will need to call the setCollapseUpper
to handle any updates in state.
Better still, you can use the callback function to update the state:
const handleCollapse = () => {
setCollapseUpper((prevState) => !prevState);
};
Solution 2:[2]
you need to change the value of collapseUpper
not setCollapseUpper
:
const [collapseUpper, setCollapseUpper] = React.useState(true);
const handleCollapse = () => {
setCollapseUpper(!collapseUpper);
};
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | wentjun |
Solution 2 |