Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用redux操作时,是否可以提前绑定参数值?_Redux_Redux Saga_Redux Actions - Fatal编程技术网

在使用redux操作时,是否可以提前绑定参数值?

在使用redux操作时,是否可以提前绑定参数值?,redux,redux-saga,redux-actions,Redux,Redux Saga,Redux Actions,我有一个动作和一个传奇 我想从actions.js内部为action实例提供一个值 我还想从故事中为action实例提供一个值 因此,当调用与动作相关联的减速器时,它将在有效负载中接收两个值 我该怎么做 actions.js sagas.js reducers.js 当您创建一个动作时,您可以向它添加任何您想要的负载。现在,您只需使用裸字符串创建操作,而无有效负载 createActiontype,payloadCreator payloadCreator必须是函数、未定义或null creat

我有一个动作和一个传奇

我想从actions.js内部为action实例提供一个值

我还想从故事中为action实例提供一个值

因此,当调用与动作相关联的减速器时,它将在有效负载中接收两个值

我该怎么做

actions.js

sagas.js

reducers.js


当您创建一个动作时,您可以向它添加任何您想要的负载。现在,您只需使用裸字符串创建操作,而无有效负载

createActiontype,payloadCreator

payloadCreator必须是函数、未定义或null

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

在sagas中,put也接受类型为string和payload的裸对象

例如,收益投入{类型:'PRODUCTS_RECEIVED',PRODUCTS}

所以,若createAction返回具有类型和负载的对象,sagas也将使用它。您可以在yeld之前使用console.log检查操作创建者返回的内容

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

因此,在创建操作时添加的有效负载与稍后提供的其他有效负载合并了吗?@Ben向主要答案添加了更多细节。我仍然有点困惑。当我最初创建动作createAction'action_NAME'时,如何提供值'foo'?下面的内容会将其添加到最终有效负载中吗?createAction'ACTION_NAME',{foo}?不,payloadCreator必须是函数、未定义或为空。谢谢。那么下面的方法应该有效吗?export const myAction=foo=>createActionMY_ACTION,bar=>{foo,bar};?然后我可以创建动作,传递foo,然后以正常的方式传递bar作为有效负载,减速机将看到这两个?
function* mySaga({
    yield put(myAction()); // How do I supply  payload value "bar" here?
}
export default handleActions({ 
  'ACTION_NAME': handleReduce(state, { payload: { foo, bar } }) => 
     { /* foo and bar should be defined */ }) });
console.log('Action for saga:', myAction());    
yield put(myAction()); // How do I supply  payload value "bar" here?