如何使用 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 }
}
}
使用 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 }
}
}