Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/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
Javascript 如何在React中发送props中的双参数函数?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何在React中发送props中的双参数函数?

Javascript 如何在React中发送props中的双参数函数?,javascript,reactjs,Javascript,Reactjs,我有一个函数,它在前面接受了两个参数,它过去只接受一个参数,所以在props中传递它,如下所示:- mixed1.map((cat1) => (<ServicesCategoryOption category1={cat1.categories} setacatid={i=>this.setacatid(i)}/>)) 因此需要两个参数a和b如何现在在props中传递它?当您使用箭头函数语法时,可以将多个参数传递给事件处理程序,如 mixed1.map((cat1) =

我有一个函数,它在前面接受了两个参数,它过去只接受一个参数,所以在props中传递它,如下所示:-

mixed1.map((cat1) => (<ServicesCategoryOption category1={cat1.categories} setacatid={i=>this.setacatid(i)}/>))

因此需要两个参数a和b如何现在在props中传递它?

当您使用箭头函数语法时,可以将多个参数传递给事件处理程序,如

mixed1.map((cat1) => (
      <ServicesCategoryOption 
           category1={cat1.categories} 
           setacatid={(a, b)=>this.setacatid(a, b)}
      />
))
mixed1.map((cat1)=>(
this.setacatid(a,b)}
/>
))
或者你可以简单地写

mixed1.map((cat1) => (
      <ServicesCategoryOption 
           category1={cat1.categories} 
           setacatid={(...args)=>this.setacatid(...args)}
      />
))
mixed1.map((cat1)=>(
this.setacatid(…args)}
/>
))
可以简单地写为

mixed1.map((cat1) => (
      <ServicesCategoryOption 
           category1={cat1.categories} 
           setacatid={this.setacatid}
      />
))
mixed1.map((cat1)=>(
))
使用第一种方法的唯一优点是,您也可以像这样传递自定义值

mixed1.map((cat1) => (
      <ServicesCategoryOption 
           category1={cat1.categories} 
           setacatid={(...args)=>this.setacatid(1, ...args)}
      />
))
mixed1.map((cat1)=>(
this.setacatid(1,…args)}
/>
))

通过这种方式,您可以从child传递多个参数并在函数中接收它们,而无需担心每次添加新参数时都会添加一个参数

您可以做任何您想做的事情:

this.setacatid(i,10)}
/>
这个.setacatid(i,j)}
/>

表达式
setacatid={(…args)=>this.setacatid(…args)}
setacatid={this.setacatid}
完全相同,但第二个表达式很短且资源密集度较低。@oklas,是的,如果您希望传递自定义参数以及函数接收的参数,那么使用…args的唯一好处就是。
mixed1.map((cat1) => (
      <ServicesCategoryOption 
           category1={cat1.categories} 
           setacatid={(...args)=>this.setacatid(1, ...args)}
      />
))