简体   繁体   English

如何在 React js 中重用我的逻辑作为函数?

[英]How to reuse my logic as a function in react js?

I have a logic on input focus & i'm passing few values with logic now i want to reuse this logic in too many input focus how can i do that?我在输入焦点上有一个逻辑&我现在用逻辑传递几个值我想在太多输入焦点中重用这个逻辑我该怎么做?

My Logic Code:-我的逻辑代码:-

<input
    type="text"
    onFocus={(e) =>
        data?
            move_box_click(
                data.One.name.split(",")[0] * docWidth,
                data.One.name.split(",")[1] * docHeight,
                data.One.name.split(",")[3] * docHeight - data.One.name.split(",")[1] * docHeight + 2,
                data.One.name.split(",")[2] * docWidth - data.One.name.split(",")[0] * docWidth + 2,
                e
            ) : ""
    }
/>

<input
    type="text"
    onFocus={(e) =>
        data?
            move_box_click(
                data.Two.name.split(",")[0] * docWidth,
                data.Two.name.split(",")[1] * docHeight,
                data.Two.name.split(",")[3] * docHeight - data.Two.name.split(",")[1] * docHeight + 2,
                data.Two.name.split(",")[2] * docWidth - data.Two.name.split(",")[0] * docWidth + 2,
                e
            ) : ""
    }
/>

Thanks for your efforts!感谢您的努力!

You can create a function and pass the reference to the onFocus attribute, like this:您可以创建一个函数并将引用传递给onFocus属性,如下所示:

const myFocusHandler = (e, name) =>
data?
move_box_click(
name.split(",")[0] * docWidth,
name.split(",")[1] * docHeight,
name.split(",")[3] * docHeight - name.split(",")[1] * docHeight + 2,
name.split(",")[2] * docWidth - name.split(",")[0] * docWidth + 2,
e
) : ""

<input type="text" onFocus={(e) => myFocusHandler(e, data.One.name)} />
<input type="text" onFocus={(e) => myFocusHandler(e, data.Two.name)} />

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

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