如何使用 Redux Promise 中间件传递额外的元数据?

How can I pass through additional metadata with Redux Promise Middleware?

使用 Redux Promise 中间件,我们可以这样编写 action:

export const withdraw=(id)=>{
    return{
        type: WITHDRAW,
        payload: (new PaypalContract()).withdraw(id),
        id
    }
}

不幸的是,redux-promise-middleware 不会在任何“WITHDRAW_PENDING”、“WITHDRAW_FULFILLED”或“WITHDRAW_REJECT”中通过 'id'。它只将 payload 中的 promise 传递给 action reducer。

在真实环境中,我们有很多项目要更新,每个项目都有一个id来标识,那么我怎么知道要更新哪个项目呢?我们必须使用 'id' 来更新指定的项目,但是如何使用 Redux Promise 中间件?

Redux promise 中间件遵循 "Flux Standard Action" (FSA) 规范。

您可以使用 meta 属性 在操作中包含其他数据:

export const withdraw = (id) => {
    return {
        type: WITHDRAW,
        payload: (new PaypalContract()).withdraw(id),
        meta: { id } 
    }
}