Skip to content

Commit 1f1fb6f

Browse files
committed
Add error handler, and the vue version must be at least 2.5.0.
1 parent 1011d45 commit 1f1fb6f

File tree

3 files changed

+22
-12
lines changed

3 files changed

+22
-12
lines changed

package.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@
2828
"bugs": {
2929
"url": "https://github.com/leezng/vue-json-pretty/issues"
3030
},
31-
"peerDependencies": {
32-
"vue": "^2.3.0"
33-
},
3431
"devDependencies": {
3532
"autoprefixer": "^7.1.2",
3633
"babel-core": "^6.22.1",
@@ -63,7 +60,7 @@
6360
"http-proxy-middleware": "^0.17.3",
6461
"less": "^2.7.2",
6562
"less-loader": "^4.0.4",
66-
"nightwatch": "^0.9.12",
63+
"nightwatch": "^1.0.19",
6764
"opn": "^5.1.0",
6865
"optimize-css-assets-webpack-plugin": "^2.0.0",
6966
"ora": "^1.2.0",
@@ -72,10 +69,10 @@
7269
"semver": "^5.3.0",
7370
"shelljs": "^0.7.6",
7471
"url-loader": "^0.5.8",
75-
"vue": "^2.3.0",
72+
"vue": "^2.5.0",
7673
"vue-loader": "^13.0.4",
7774
"vue-style-loader": "^3.0.1",
78-
"vue-template-compiler": "^2.3.0",
75+
"vue-template-compiler": "^2.5.0",
7976
"webpack": "^3.12.0",
8077
"webpack-bundle-analyzer": "^2.2.1",
8178
"webpack-dev-middleware": "^1.10.0",

src/components/app.vue

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,11 @@
203203
// 单选模式
204204
isSingle () {
205205
return this.selectableType === 'single'
206+
},
207+
208+
propsError () {
209+
const error = this.selectableType && !this.selectOnClickNode && !this.showSelectController
210+
return error ? 'When selectableType is not null, selectOnClickNode and showSelectController cannot be false at the same time, because this will cause the selection to fail.' : ''
206211
}
207212
},
208213
methods: {
@@ -264,14 +269,22 @@
264269
return this.showDoubleQuotes ? `"${key}"` : key
265270
}
266271
},
267-
created () {
268-
if (this.selectableType && !this.selectOnClickNode && !this.showSelectController) {
269-
throw new Error('[vue-json-pretty] error')
270-
}
272+
// 捕获一个来自子组件的错误
273+
// 因为是递归组件,因此错误只对外暴露一次,子组件的错误不再对外传递
274+
errorCaptured () {
275+
return false
271276
},
272277
watch: {
273278
deep (newVal) {
274279
this.visible = this.currentDeep <= newVal
280+
},
281+
propsError: {
282+
handler (message) {
283+
if (message) {
284+
throw new Error(`[vue-json-pretty] ${message}`)
285+
}
286+
},
287+
immediate: true
275288
}
276289
}
277290
}

yarn.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5868,7 +5868,7 @@ vue-style-loader@^3.0.0, vue-style-loader@^3.0.1:
58685868
hash-sum "^1.0.2"
58695869
loader-utils "^1.0.2"
58705870

5871-
vue-template-compiler@^2.3.0:
5871+
vue-template-compiler@^2.5.0:
58725872
version "2.6.8"
58735873
resolved "http://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.8.tgz#750802604595134775b9c53141b9850b35255e1c"
58745874
dependencies:
@@ -5879,7 +5879,7 @@ vue-template-es2015-compiler@^1.6.0:
58795879
version "1.9.1"
58805880
resolved "http://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
58815881

5882-
vue@^2.3.0:
5882+
vue@^2.5.0:
58835883
version "2.6.8"
58845884
resolved "http://registry.npm.taobao.org/vue/download/vue-2.6.8.tgz#f21cbc536bfc14f7d1d792a137bb12f69e60ea91"
58855885

0 commit comments

Comments
 (0)