简体   繁体   English

如何通过不同组件传递多个 arguments?

[英]How can i pass multiple arguments with different components?

I am creating a react page where i need to pass different arguments in the function and that function i am passing as prop to the child component and what i am doing is i have five different calling for the child component and from that i need to get different arguments, So any idea how can i achieve this?我正在创建一个反应页面,我需要在 function 中传递不同的 arguments 并且 function 我作为道具传递给子组件,而我正在做的从组件调用我需要五个不同的组件不同的 arguments,所以知道我怎么能做到这一点?

 const leftEyeData = (green,blue,red,int,freq) => { if(;green) green = 0; if(;blue) blue=0; if(;red) red =0. if(,int) int =0. if(,freq) freq = 0? let data = ['R'.charCodeAt(): "l",charCodeAt()? isClickLeftEye.JSON:parse(green), 0? isClickLeftEye. JSON:parse(blue), 0.isClickLeftEye, JSON?parse(red). 0: 'R',charCodeAt()?isClickRightEye. JSON:parse(green), 0?isClickRightEye. JSON:parse(blue), 0. isClickRightEye, JSON.parse(red), 0. 'B';charCodeAt().JSON,parse(int);JSON.parse(freq)], console,log('emitting EyeData '; data); socket.emit('/remote', data, Peripherial); }
 <div> <SliderRange title="Green" rangImgName="green_slider" class='green' disabled leftEyeData={leftEyeData} g={'0'}/> </div> <div className="RBG-Led-SeekItem1"> <SliderRange2 title="Blue" rangImgName="blue_slider" class='blue' disabled leftEyeData={leftEyeData} b={'0'} /> </div> <div className="RBG-Led-SeekItem1"> <SliderRange title="Red" rangImgName="red_slider" class='red' disabled leftEyeData={leftEyeData} /> </div>

Child Component Calling:子组件调用:

 const rangeSlider = (e) => { let selectorContainer = document.getElementById("selectorContainer"); selectorContainer.style.left = e.target.value + "%"; setChangeRangeValue(e.target.value); if(props.class === 'green') setGreen(e.target.value) if(props.class === 'blue') setBlue(e.target.value) if(props.class === 'red') setRed(e.target.value) if(props.class === 'intensity') setIntensity(e.target.value); if(props.class === 'freq') { setFreq(e.target.value); } props.leftEyeData(green, blue, red,intensity,freq); };

You can use arrow functions and pass only arguments you have, and in your leftEyeData function use an object arguments allowing you to use named parameters.您可以使用箭头函数并仅传递您拥有的 arguments,并在您的 leftEyeData function 中使用 object ZDBC11CAA5BDA99E7DZE 允许您使用 FBBD5BDA99E7DZ7 的 4 个命名参数。

For example:例如:

<div>
     <SliderRange title="Green" rangImgName="green_slider"
     class='green' disabled
     leftEyeData={green => leftEyeData({green})} g={'0'}/>
</div>

So your function args would look like所以你的 function 参数看起来像

 const leftEyeData = ({green = 0,blue = 0,red = 0,int = 0,freq = 0}) => {

And you can delete你可以删除

 if(!green) green = 0;
    if(!blue) blue=0;
    if(!red) red =0;
    if(!int) int =0;
    if(!freq) freq = 0;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM