Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Reactjs 我是否需要手动定义onChange处理程序来填充状态变量?_Reactjs - Fatal编程技术网

Reactjs 我是否需要手动定义onChange处理程序来填充状态变量?

Reactjs 我是否需要手动定义onChange处理程序来填充状态变量?,reactjs,Reactjs,假设我有一个包含许多输入控件的表单,它应该绑定到各自的状态变量。我真的需要为每一个定义手动onChange=..处理程序,以便在单击提交或按Enter键时填充我的状态变量吗 e、 g const[lastLoginDate,setLastLoginDate]=useState(); const[confirm,setconfirm]=使用状态(false); .. ... //onChange处理程序从输入控件填充状态变量 handleLastLoginDate=(e)=>{ setLastLo

假设我有一个包含许多输入控件的表单,它应该绑定到各自的状态变量。我真的需要为每一个定义手动
onChange=..
处理程序,以便在单击提交或按Enter键时填充我的状态变量吗

e、 g

const[lastLoginDate,setLastLoginDate]=useState();
const[confirm,setconfirm]=使用状态(false);
..
...
//onChange处理程序从输入控件填充状态变量
handleLastLoginDate=(e)=>{
setLastLoginDate(即目标值);
};
handleConfirmed=(e)=>{
setconfirm(例如,target.checked?true:false);
};
...
//在提交或输入时,我希望所有状态变量都包含填充的值
这对我来说似乎太费力了。我希望有一种方法可以简单地说明

<input type="text" stateVar={lastLoginDate} ></input>


有没有一种方法可以简化React中的状态绑定?

在不添加更多抽象的情况下,有必要使用事件处理程序(如
onChange
)来调用更新状态的函数。如果您想要更紧凑的语法,可以使用如下匿名箭头函数(注意,当处理程序中需要多行时,这不是很好):

setLastLoginDate(e.target.value)}
>

不,你没有;这是一种常见的模式,您可以将控件名传递给更高阶的处理程序,甚至可以从事件的目标获取控件名。阅读文档,例如:除非使用表单库,否则不要阅读。
<input type="text" stateVar={lastLoginDate} ></input>
<input
  type="text"
  value={lastLoginDate}
  onChange={(e) => setLastLoginDate(e.target.value)}
></input>