How to solve the `TypeError: Attempted to assign to readonly property` error

I was doing something in my Next.js codebase when I ran into this problem:

TypeError: Attempted to assign to readonly property

Weird! After a bit of debugging I found the problem. I has nothing to do with Next.js, it can happen in any JavaScript codebase.

I had a column in my database where I stored data as JSON.

In my code I was updating this JSON object, using the dot syntax (like = 'Flavio') but I forgot to call JSON.parse() before doing so.

data was not an object, but a string!

Strings are immutable in JavaScript. We can’t update them once defined. Hence the error. The solution was to, obviously, call JSON.parse() before updating the JSON object.

Download my free JavaScript Handbook!