Checkbox Not Toggling In React With Material-ui
So I have a React code in which the checkbox is not toggling when I click on it. This is the codesandbox link: https://codesandbox.io/s/inspiring-kirch-q6p4h I am initializing the
Solution 1:
I dug in on this a bit and after converting handleChange
to use a functional state update
consthandleChange = (name, campid) => {
setCheckBox((checkbox) => ({
...checkbox,
[campid]: !checkbox[campid]
}));
};
to try and avoid any stale enclosures with the columns
prop passed to ThanosTable
I dug in on that component code to see if/how it handled re-enclosed checkbox values passed in the columns
prop.
Issue
The columns
are stored in local state in the visibleColumns
state and never again does ThanosTable
look at and respond to changes on the columns
prop.
Solution
Add an useEffect
to update the visibleColumns
state when props update.
useEffect(() => {
setVisibleColumns(
!options.removeColumnsFeature &&
options.showColumns &&
options.showColumns.length
? [...columns.filter((x) => options.showColumns.includes(x.key))]
: [...columns]
)
}, [columns, options]);
You can, and should, factor the common logic between the visibleColumns
state initializer and effect callback.
Solution 2:
Don't use the callback inside the useState
declaration
const [checkbox, setCheckBox] = useState({});
Post a Comment for "Checkbox Not Toggling In React With Material-ui"