在我的 Next.js 代码库中,我遇到了这个问题:
TypeError: Attempted to assign to readonly property
奇怪!经过一番调试,我找到了问题所在。它与 Next.js 无关,它可以发生在任何 JavaScript 代码库中。
在我的数据库中,有一列是以 JSON 的形式存储数据。
在我的代码中,我使用点语法(例如 data.name = 'Flavio'
)来更新这个 JSON 对象,但是我忘记在此之前调用 JSON.parse()。
data
不是一个对象,而是一个字符串!
在 JavaScript 中,字符串是不可变的。一旦定义,我们无法更新它们。因此会出现错误。解决方法很简单,就是在更新 JSON 对象之前调用 JSON.parse()
。