Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue属性中的子对象正在丢失来自prototype的方法_Javascript_Typescript_Vue.js - Fatal编程技术网

Javascript Vue属性中的子对象正在丢失来自prototype的方法

Javascript Vue属性中的子对象正在丢失来自prototype的方法,javascript,typescript,vue.js,Javascript,Typescript,Vue.js,我正在使用Vue显示(除其他外)六边形网格。 我用lib在内存中表示它。它提供了一个网格对象,其中包含实际数据和许多操作数据的方法(为了方便起见,包括数组类型中的所有方法) 我尝试将其作为属性传递给我的Vue组件 @Component export default class TileMap extends Vue { @Prop() private grid!: Grid; 但是我的Vue组件中丢失了所有方法 @Component export default class TileMap e

我正在使用Vue显示(除其他外)六边形网格。 我用lib在内存中表示它。它提供了一个
网格
对象,其中包含实际数据和许多操作数据的方法(为了方便起见,包括
数组
类型中的所有方法)

我尝试将其作为属性传递给我的Vue组件

@Component
export default class TileMap extends Vue {
@Prop() private grid!: Grid;
但是我的Vue组件中丢失了所有方法

@Component
export default class TileMap extends Vue {
@Prop() private grid!: Grid;
  • 当创建
    网格
    对象时,它们在原型中
  • 在我的组件中使用
    Grid
    属性时,它们在原型中不是
这是预期的吗? 我应该为具有属性的对象避免属性吗?

不幸的是

对象必须是普通的:本机对象,如浏览器API对象 而原型属性被忽略。经验法则是数据 应该只是数据-不建议使用 他们自己有状态的行为

对于这种情况,我看不到任何好的解决方法

在窗口对象中存储内容

在某个服务中使用内部状态包装网格逻辑

或在函数中包装网格,然后将其作为道具传递给子级?

最后一个令人惊讶

从“蜂窝网格”导入{defineGrid,Grid,GridFactory}
从“./Test.vue”导入测试
从“Vue属性装饰器”导入{Vue,Component,Prop,Provide,ProviderActive};
@组成部分({
组件:{Test}
})
导出默认类应用程序扩展Vue{
@Provide()private gridFunc:()=>Grid=null;
安装的(){
const grid=defineGrid().矩形({宽度:4,高度:4});
this.gridFunc=()=>grid;
}
}
从“蜂窝网格”导入{defineGrid,Grid,GridFactory}
从“Vue属性装饰器”导入{Vue,Component,ProviderActive,Prop,Watch};
@组件({})
导出默认类测试扩展Vue{
@Prop()私有网格函数!:()=>网格;
@监视('gridFunc')
onGridChange(val:string,oldVal:string){
log(this.gridFunc());
}
}

不清楚您是如何使用它的,以及您是如何得出它们不在原型中的结论的。请提供清晰的问题陈述,解释您的案例。