Home > Back-end >  React grid layout - Local storage with add/remove widgets
React grid layout - Local storage with add/remove widgets

Time:08-27

I have been trying to get react grid layout setup with my project and have been unable to merge two of the examples. Local storage and add/remove widgets

I figured I needed to also store items in LS and have been trying to get it working but with no luck. Currently, items are being stored, and layout is empty (not sure why), but the items are reset on refresh. I'm pretty sure it's because of the .map in state, but I am unsure how I can fix this.

If anything can help me I would be grateful as I have been stuck on this for awhile.

I have made a sandbox for ease of help

CodePudding user response:

I think this has to do with the fact that the first render of the ResponsiveReactGridLayout component counts as an onChange call. Therefore, it will call saveToLS() with an empty array of items. You should include a useEffect which will get the layout stored in localStorage upon page load. Then store the retrieved layout in a useState and pass this to the ResponsiveReactGridLayout component. After that you could set a flag that allows the ResponsiveReactGridLayout to update and save the layout to local storage, but this is optional.

Also, I would highly recommend changing your code from class based to functional code. Class based coding in React is mostly outdated and only used in specific use cases. Functional programming would future proof your code.

  • Related