假设我有这段代码:
const {x, y} = point;
Babel会把它变成:
var _point = point,
x = _point.x,
y = _point.y;
哪个好,但如果点未定义怎么办?现在我收到一个错误:
"Cannot read property 'x' of undefined"
。
那么我该如何避免这种情况呢?
我想做点什么
const {x, y} = {} = point;
但这是语法错误。
我只能看到这是一个选项:
const {x, y} = point || {};
哪个babel转向:
var _ref = point || {},
x = _ref.x,
y = _ref.y;
我们在这里创建一个对象只是为了避免未定义的错误。这似乎很浪费。
我是否缺少一些可以避免这种情况的语法?可能会发生类似这样的事情:
var x, y;
if (typeof point !== 'undefined') {
x = point.x;
y = point.y;
}
答案 0 :(得分:0)
[...]如果点未定义怎么办?现在我收到一个错误:“无法读取未定义的属性'x'”
那么我该如何避免这种情况呢?
如果要编写清晰的代码,可以明确检查该条件:
mapStateToProps
答案 1 :(得分:0)
要处理ES6对象分解中的未定义错误,可以执行以下操作
const {x, y} = {...point};
console.log(x) // undefined
console.log(y) // undefined