2017-01-22 3 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

あなたの役に立つ返事をありがとうPointy、もちろん私はそれを試しましたが、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 }); 
関連する問題