2017-01-22 82 views
2

是否可以在同时返回对象时解构对象? 例如,要改变这种代码:返回语句中的ES6解构

const mapStateToProps = ({ newItem }) =>{ 
    const { id, name, price } = newItem; 
    return { id, name, price }; 
} 

为了这样的事情:

const mapStateToProps = ({ newItem }) =>{ 
    return { id, name, price } = newItem; 
} 
+4

你试过了吗?看起来好像比在这里输入问题花费的时间少。 – Pointy

+0

感谢您的有益回复尖尖的,当然,我已经尝试过,但在ES6中有太多的语法糖,我认为可能有这样做的正确方法 – kfcobrien

+0

您的代码已经工作,不知道什么是“正确的做法它“你想要的。 – Oriol

回答

4

不,这是不可能的。

(免责声明:你的语法著作和做既破坏结构和返回,但它相当于

({ id, name, price } = newItem); // assigns global variables 
return newItem; 

这可能不是你想要的)

做你想要什么(我假设正在创建一个新对象),则需要使用对象字面值(可能使用速记属性表示法)。也One-liner to take some properties from object in ES 6参见:

const mapStateToProps = ({newItem: {id, name, price}}) => ({id, name, price}); 
+0

谢谢,这正是我一直在寻找的!对不起,我在我的描述中没有更清楚:) – kfcobrien

0

在ES6你也可以做到以下几点,如果你想通过所有的newItem

const mapStateToProps = ({ newItem }) => ({ ...newItem });