-1

例如,我有一个动作调用crazyAction它有三个参数,第二个和第三个可以为空,但第一个必须是休闲;

crazyAction(firstParameter, secondParameter = null, thirdParameter = null){
      return{
         type:    CONSTANTS.WHATEVER,
         payload: {firstParameter, secondParameter, thirdParameter}      
      }
}

当我想分派给这个时,我应该按顺序发送参数,比如;

    dispatch( uiActions.navigateToPage(firstParameter, null, thirdParameter));

所以问题是如果我只想发送没有第二个的第三个参数,还有另一个选项,中间没有空的东西?

像这样的,怎么可能?

dispatch( uiActions.navigateToPage(firstParameter, thirdParameter));
4

1 回答 1

1

使用Destructuring Assignment,你可以做这样的事情。

缺少的参数将作为空值出现,这将帮助您不按顺序传递参数。

    function crazyAction({ firstParameter, secondParameter, thirdParameter}){

      console.log(firstParameter, secondParameter, thirdParameter);
      //output "first"    null    "3"
    }

定义保存传递的属性和调用函数的对象。

const objParams = {
  firstParameter : "first", thirdParameter:"3"
};
crazyAction(objParams); 

在职的codesandbox demo

于 2018-03-01T09:09:21.587 回答