我如何理解Redux购物车示例中的默认声明?

时间:2018-06-23 18:22:13

标签: javascript redux

这是声明:

default:
      const { productId } = action
      if (productId) {
        return {
          ...state,
          [productId]: products(state[productId], action)
        }
      }
      return state

来源:https://codesandbox.io/s/github/reactjs/redux/tree/master/examples/shopping-cart(src / reducers / products /-第26行)

这是我到目前为止所了解的:

第26行:如果不符合情况RECIEVE_PRODUCTS,则执行双点之后的内容。

第27行:将const productId设置为等于addToCart操作继承的action.productId。

第28行:如果存在action.productId,则在大括号之间执行该语句。

第29行和第30行:返回状态的不变属性。

第31行:?

第32-34行:否则,返回状态不变。

1 个答案:

答案 0 :(得分:0)

[productId]: products(state[productId], action)正在将products(state[productId], action)的结果分配给值为productId的键。 通过示例更容易解释:

const a = 'foo';
const b = 'bar';

const obj = {
  [a]: a,
  b: b
}

console.log(obj);