2017-01-22 55 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 });