在退货声明中进行ES6解构

kfc*_*ien 17 javascript destructuring ecmascript-6

是否可以在同时返回对象时对其进行解构.例如,要更改此代码:

const mapStateToProps = ({ newItem }) =>{
  const { id, name, price } = newItem;
  return { id, name, price };
}
Run Code Online (Sandbox Code Playgroud)

对于这样的事情:

const mapStateToProps = ({ newItem }) =>{
  return { id, name, price } = newItem;
}
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 15

不,这是不可能的.

(免责声明:您的语法有效,并且可以进行解构和返回,但它相当于

({ id, name, price } = newItem); // assigns global variables
return newItem;
Run Code Online (Sandbox Code Playgroud)

这可能不是你想要的)

要做你想要的(我假设是创建一个新对象),你需要使用一个对象文字(可能使用简写属性表示法).另请参阅单行程序,以从ES 6中的对象获取某些属性:

const mapStateToProps = ({newItem: {id, name, price}}) => ({id, name, price});
Run Code Online (Sandbox Code Playgroud)