Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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 HTML onSubmit/onClick处理程序函数能否具有除事件之外的其他参数?_Javascript_Reactjs - Fatal编程技术网

Javascript HTML onSubmit/onClick处理程序函数能否具有除事件之外的其他参数?

Javascript HTML onSubmit/onClick处理程序函数能否具有除事件之外的其他参数?,javascript,reactjs,Javascript,Reactjs,我遇到了一些情况onClick或onSubmit函数既需要事件又需要参数。 我可以在react或vanilla html标记中处理这个吗 或者,只是使用其他函数做一些副作用 常量CustomFC=({})=>{ const[id,setId]=useState(“”); const[password,setPassword]=useState(“”); 类型FormParams={ id:字符串; 密码:字符串; } const customClickHandler=useCallback((

我遇到了一些情况
onClick
onSubmit
函数既需要
事件
又需要
参数
。 我可以在react或vanilla html标记中处理这个吗

或者,只是使用其他函数做一些副作用


常量CustomFC=({})=>{
const[id,setId]=useState(“”);
const[password,setPassword]=useState(“”);
类型FormParams={
id:字符串;
密码:字符串;
}
const customClickHandler=useCallback((参数:FormParams)=>
{
调度(params);
},[id,密码];
const onChangeId=useCallback((id)=>setId(id),[]);
const onChangePassword=useCallback((密码)=>setPassword(密码),[]);
}
//表格1.tsx
常数形式=({
提交时,
一旦改变,
}) => {
const{onChangeId,onChangePassword}=onChange;
const handleSubmit=(e,params)=>{/是,您可以这样做:

const handleClick = (event, parameter) => {
   // do stuff
}
那么就这样称呼它:

onClick={(event) => handleClick(event, parameter)}
这有用吗

在您的情况下,它将是:

  return (
    <form onSubmit={(event) => handleSubmit(event, parameter)}>
      <input ... />
      <input ... />
    </form>
  )
返回(
handleSubmit(事件、参数)}>
)

任何本机事件处理程序都只有一个
事件
参数,但您可以使用本机处理程序调用具有自定义参数的第二个函数:

document.querySelector(“按钮”).addEventListener(“单击”),函数(事件){
actualHandler(事件、this.id、this.dataset.test、this.className);
});
函数actualHandler(事件、id、数据测试、类列表){
日志(event.type、id、dataTest、classList);
}

单击我
如何为
参数
提供值?这实际上不是事件侦听器上的一个额外参数——它只是用一个额外参数调用一个不同的函数。该值来自于您的函数。请在否决投票之前尝试我的代码。这是有效的。您的代码永远不会为
参数提供任何值。您只显示了一个需要两个参数的函数,但实际上只会传递一个(
事件
)。这里的实际答案是“否”,但有一个解决方法,而不是“是”@GrantSingleton我感谢你的回答。让我在给你投票后再试试。如果你继续在你的程序中使用你的方法,我想你刚才在这里提到它是完全值得的。谢谢你的解释。非常简短和有用。