【发布时间】:2018-03-30 09:39:36
【问题描述】:
我想知道是否有办法同时破坏和使用数组方法?如果是,使用它是否有用,还是会大大降低代码的可读性,以至于不值得?
我当前的代码是这样的:
const { props: { title, ingredients: ing } } = this;
const ingredients = ing.map(
(ing, index) => <li key={index}>{ing}</li>
);
但我正在尝试找到这样一种更短的方法:
const { props: { title, ingredients: ingredients.map(
(ing, index) => <li key={index}>{ing}</li>
); } } = this;
此代码不起作用。任何提示将不胜感激! :)
【问题讨论】:
-
最后一个问题非常主观;我会说是的,它确实会显着降低可读性。 Keep it simple, stupid.
-
添加到@deceze 的评论中,嵌套解构在这种情况下往往会散发出“太聪明”的感觉。
const { title, ingredients } = this.props可能看起来更好,然后可能将下一个变量命名为const ingredientElements。当然,这是你的代码,但以后可能有人需要阅读和理解它,包括你未来的自己???? -
不,这是不可能的。当你使用解构对象时,字面量的 value 部分必须是一个可以赋值的变量,或者另一个用于进一步解构的字面量,它不能是一个表达式。
标签: javascript reactjs ecmascript-6 destructuring ecmascript-next