在Next.js应用程序中,我正在getInitialProps
函数中创建一个对象,并在constructor
中检查该对象的实例。但是在客户端运行代码时,它的类类型已更改。
我的班级是
class TestClass {
constructor(public name: string, public id: number) {
}
}
在getInitialProps
函数中,我将返回该类的对象
static async getInitialProps() {
const test = new TestType('TestUser', 123);
return test;
}
在构造函数中检查instanceof
属性时,它在客户端提供了错误的类型。
constructor(props: AppProps) {
super(props);
console.log('test', props.test instanceof TestClass);
// true on server side but false on client side.
}
所以我的问题是为什么会发生这种情况,以及如何在客户端也保持正确的对象类型。
答案 0 :(得分:0)
getInitialProps
序列化从中返回的数据,并且功能无法序列化。
在这里提到: https://nextjs.org/docs/api-reference/data-fetching/getInitialProps
一旦实例作为组件上的道具通过,您将需要对其进行重建。