Reactjs 如何获得';名称';事件内[自动完成]组件
我有处理程序fn用于处理来自Textfield的输入 我想将它用于自动完成组件,但我无法从中获取“名称”和值Reactjs 如何获得';名称';事件内[自动完成]组件,reactjs,material-ui,Reactjs,Material Ui,我有处理程序fn用于处理来自Textfield的输入 我想将它用于自动完成组件,但我无法从中获取“名称”和值 function handlerChange(e){ const { name, value, checked } = e.target; return { name, value: value || checked }; } <Autocomplete id="distributions" name="defaultDistr" options=
function handlerChange(e){
const { name, value, checked } = e.target;
return { name, value: value || checked };
}
<Autocomplete
id="distributions"
name="defaultDistr"
options={distributions}
getOptionLabel={distribution => distribution}
inputValue={defaultDistr}
defaultValue={defaultDistr}
onChange={(e, value) => {
console.log('e', e, 'value', value);
}}
renderInput={params => (
<TextField
{...params}
name="defaultDistr"
label="distributions"
margin="normal"
fullWidth
/>
)}
/>
函数句柄更改(e){
常量{name,value,checked}=e.target;
返回{name,value:value | | checked};
}
分布}
inputValue={DefaultDistrict}
defaultValue={DefaultDistrict}
onChange={(e,value)=>{
console.log('e',e',value',value);
}}
renderInput={params=>(
)}
/>
对于自动完成
,有许多不同的事件会导致值的更改。这些事件可能来自几个不同的元素,因此您不能依赖事件的目标来获取名称。类似地,事件的目标不一定有值,即使有,该值也可能不代表自动完成
的当前值。这就是将正确的值作为第二个参数传递给onChange
处理程序的原因
假设handlerChange
中有比您所展示的更重要的代码,因此值得尝试重用,您可以执行如下所示的操作,创建一个新对象,将信息组织到处理程序所期望的结构中
<Autocomplete onChange={(event, value)=> { handlerChange({target: {name: "defaultDistr", value: value}})} .../>
{handlerChange({target:{name:'defaultDistr',value:value}}})}…/>