找回密码
 立即注册

QQ登录

只需一步,快速开始

tyasrio

注册会员

4

主题

11

帖子

132

积分

注册会员

积分
132
最新发帖
tyasrio
注册会员   /  发表于:2019-6-3 16:56  /   查看:3160  /  回复:6
代码:
  1. beforeRouteLeave (to, from, next) {
  2.   this.$refs.monthSpreadJS.spread.destroy()
  3.   this.$destroy()
  4. }
复制代码

如果只执行
  1. this.$destroy()
复制代码
的话,内存并不会被释放。


错误日至
  1. vue.esm.js?a026:628 [Vue warn]: Error in destroyed hook: "Error: index out of Range!"
  2. found in
  3. ---> <GcWorksheet>
  4.        <GcSpreadSheets>
  5.          <SpreadjsPanel> at src/components/Common/SpreadJS.vue
  6.            <ElMain> at packages/main/src/main.vue
  7.              <ElContainer> at packages/container/src/main.vue
  8.                <G020202> at src/components/Page/G0202/G020202.vue
  9.                  <ElAside> at packages/aside/src/main.vue
  10.                    <ElContainer> at packages/container/src/main.vue
  11.                      <G010102Frm> at src/components/Page/G0101/G010102.vue
  12.                        <Home> at src/components/Common/Home.vue
  13.                          <Root>
复制代码



6 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-6-4 10:11:26
沙发
您好,请问您的SpreadJS版本号多少?V11曾修复过一个内存泄漏的问题,

推荐您先把SpreadJS升级到最新版本再尝试。

如果仍有问题,请提供一个能够重现问题的示例包,上传到帖子附件。
回复 使用道具 举报
tyasrio
注册会员   /  发表于:2019-6-4 16:30:39
板凳
package.json
  1. "dependencies": {
  2.     "@grapecity/spread-excelio": "^12.1.2",
  3.     "@grapecity/spread-sheets": "^12.1.2",
  4.     "@grapecity/spread-sheets-print": "^12.1.2",
  5.     "@grapecity/spread-sheets-resources-ja": "^12.1.2",
  6.     "@grapecity/spread-sheets-vue": "^12.1.2"
  7. }
复制代码


test.vue
  1. <template>
  2. <div>
  3. <h1>Spread.Sheets</h1>
  4. <div>
  5. <button @click="destroy">destroy</button>
  6. </div>
  7. <div style="text-align: left">
  8. <gc-spread-sheets hostClass='spread-host' @workbookInitialized='workbookInitialized($event)'>
  9. <gc-worksheet>
  10. </gc-worksheet>
  11. </gc-spread-sheets>
  12. </div>
  13. </div>
  14. </template>
  15. <script>
  16. import '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css'
  17. import '@grapecity/spread-sheets-vue'

  18. export default {
  19. methods: {
  20. workbookInitialized (spread) {
  21. this.spread = spread
  22. spread.refresh()
  23. },
  24. destroy () {
  25. this.spread.destroy()
  26. this.$destroy()
  27. }
  28. }
  29. }
  30. </script>
  31. <style>
  32. .spread-host {
  33. width: 100%;
  34. height: 400px;
  35. border: 1px solid black;
  36. }
  37. </style>
复制代码


回复 使用道具 举报
tyasrio
注册会员   /  发表于:2019-6-4 16:33:49
地板
package.json
  1. "dependencies": {
  2.     "@grapecity/spread-excelio": "^12.1.2",
  3.     "@grapecity/spread-sheets": "^12.1.2",
  4.     "@grapecity/spread-sheets-print": "^12.1.2",
  5.     "@grapecity/spread-sheets-resources-ja": "^12.1.2",
  6.     "@grapecity/spread-sheets-vue": "^12.1.2"
  7. }
复制代码


test.vue
  1. <template>
  2. <div>
  3. <h1>Spread.Sheets</h1>
  4. <div>
  5. <button @click="destroy">destroy</button>
  6. </div>
  7. <div style="text-align: left">
  8. <gc-spread-sheets hostClass='spread-host' @workbookInitialized='workbookInitialized($event)'>
  9. <gc-worksheet>
  10. </gc-worksheet>
  11. </gc-spread-sheets>
  12. </div>
  13. </div>
  14. </template>
  15. <script>
  16. import '@grapecity/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css'
  17. import '@grapecity/spread-sheets-vue'

  18. export default {
  19. methods: {
  20. workbookInitialized (spread) {
  21. this.spread = spread
  22. spread.refresh()
  23. },
  24. destroy () {
  25. this.spread.destroy()
  26. this.$destroy()
  27. }
  28. }
  29. }
  30. </script>
  31. <style>
  32. .spread-host {
  33. width: 100%;
  34. height: 400px;
  35. border: 1px solid black;
  36. }
  37. </style>
复制代码
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-6-5 09:22:35
5#
本帖最后由 KevinChen 于 2019-6-5 09:24 编辑

您好,我们以您的方式创建了VUE的示例项目,没能重现这个问题,请参考附件。
附件中的示例项目,解压后需要先执行

npm install

再执行:

npm start

按照您的方式,在VueSampleV1210\src\components\QuickStart.vue中定义了beforeRouteLeave方法。

VueSampleV1210.zip

679.14 KB, 下载次数: 106

回复 使用道具 举报
tyasrio
注册会员   /  发表于:2019-6-5 12:51:44
6#
找到原因了。。
我在全局定义了一个方法。。刚才把它删了之后就好了。。。

GC.Spread.Sheets.Workbook.prototype.XXXXX
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-6-5 14:44:31
7#
感谢反馈,问题解决了就好,本帖我结贴了,有新的问题欢迎发新贴交流~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部