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我感谢你的回答。让我在给你投票后再试试。如果你继续在你的程序中使用你的方法,我想你刚才在这里提到它是完全值得的。谢谢你的解释。非常简短和有用。