2017-10-20 75 views
0

我有一个动作和一个传奇。使用redux-actions时,我可以提前绑定参数值吗?

我想要的值从内actions.js提供给操作实例。

我也想从里面传奇提供一个值的操作实例。

因此,当与所述动作相关联的减速器被调用时,它在有效载荷接收两个值。

我该怎么做?

actions.js

import { createAction } from 'redux-actions'; 
export const myAction = createAction('ACTION_NAME'); // How do I supply payload value "foo" here? 

sagas.js

function* mySaga({ 
    yield put(myAction()); // How do I supply payload value "bar" here? 
} 

reducers.js

export default handleActions({ 
    'ACTION_NAME': handleReduce(state, { payload: { foo, bar } }) => 
    { /* foo and bar should be defined */ }) }); 

回答

1

当你创建一个共同行动ñ你可以添加任何有效载荷到你想要的。现在你只需要创建一个没有负载的字符串的动作。

createAction(type, payloadCreator)

payloadCreator必须是一个函数,未定义或空

createAction('ACTION_NAME',() => { reuturn {foo: 'bar'}; })

https://github.com/reduxactions/redux-actions/blob/master/docs/api/createAction.md#createactiontype-payloadcreator-createactiontype-payloadcreator

在英雄传奇把接受带有类型(字符串)和有效载荷太

裸对象

E.g. yield put({ type: 'PRODUCTS_RECEIVED', products })

所以,如果createAction收益型和有效载荷对象,它将被使用的传奇故事也。您可以在使用之前使用console.log来检查您的操作创建者返回的内容。

console.log('Action for saga:', myAction());  
yield put(myAction()); // How do I supply payload value "bar" here? 
+0

因此,创建操作时添加的有效负载与稍后提供的其他有效负载合并在一起? – Ben

+0

@Ben增加了更多的细节,主要答复 –

+0

我还是有点困惑,请标记为接受的答案,如果帮助:) –

相关问题