我正在React中处理一个表单,我需要使用event.preventDefault。同时,我还需要将其他参数传递给父函数。我尝试使用下面的代码正常添加它们,但是似乎不起作用;我怎样才能做到这一点?我已经看过其他问题,但没有找到解决办法的运气。
handleSubmit = (event, param1, param2) => {
event.preventDefault();
this.setState(prevState => {
// piece of code where i need to use the other parameters
});
}
答案 0 :(得分:1)
类似的东西吗?
DataProcessor(DataPointer &&p) : pData(std::move(p)) {}
template<typename T = DataPointer>
DataProcessor(std::enable_if_t<std::is_copy_constructible_v<T>, const T&> p)
: pData(p) {}
答案 1 :(得分:1)
在此处阅读有关合成事件和事件池的文章,以了解为什么这不能按您期望的方式工作:https://reactjs.org/docs/events.html
但是,您可以将参数传递给事件处理程序调用的函数。例如:
handleClick(param1, param2){
// no need to preventDefault here, you can't anyway, since you called it in onClick
this.setState(prevState=> {
// do something with param1 and param2
})
render() {
const param1 = "someVal";
const param2 = 0;
return <div onClick={e=> { e.preventDefault(); this.handleClick(param1,param2)} }/>
}
答案 2 :(得分:0)
要获取事件和附加参数,您需要使用闭包。
const btn = document.querySelector('button');
function callback(name) {
return function(e) {
e.preventDefault();
console.log(e.target.id);
console.log(name);
document.querySelector('#name').innerText = name;
};
}
btn.addEventListener('click', callback('Paul'));
<form action="#">
<div id="name"></div>
<button id="test" type="submit">Submit</button>
</form>