尝试将数据作为对象传输到另一个页面时遇到 DataClone 错误
在 Crome 浏览器上,我收到以下错误:
DataCloneError:无法在“History”上执行“pushState”:无法克隆 function () { [native code] }。
app.js
const app = () => {
const profile = useContext(ProfileContext);
console.log(typeof profile) // object type
const gotoEditPage = () => {
history.push({
pathname: '/setting',
state: {profile}
})
}
return (
<>
<button onClick={gotoEditPage}>Next</button>
</>
)
}
是否是浏览器特定错误。
DataCloneError 实际上发生是因为我试图在对象中传输 methods。因此,为了避免此错误,只需将对象解析为 JSON,如下所示
const parseData = JSON.parse(JSON.stringify(profile));
现在parseData可以轻松转移到另一个页面。