【发布时间】:2021-11-21 19:19:34
【问题描述】:
我们如何在自动完成的 onChange 方法中传递索引。如果我将索引硬编码为零,我可以设置 ItemNumber 的状态。但是在设置索引时遇到了麻烦。谁能指导我。
import React from 'react';
import './style.css';
import Autocomplete from '@material-ui/lab/Autocomplete';
export class Item extends Component {
constructor(props) {
super(props);
this.state = {
currentAsset: [{
itemNumber: [],
}],
};
}
设置“itemNumber”状态的工作代码。 但是传递索引有问题(而不是 currentAsset[0],应该传递索引。像 currentAsset[i])。
onChangeHandleInput = (event, value) => {
let currentAsset = [...this.state.currentAsset];
currentAsset[0].serienr = value;
this.setState({ currentAsset });
}
render() {
const currentAsset = Object.values(this.state.currentAsset);
return (
<div>
{currentAsset.map((element, index) => {
return (
<div className="box">
<Autocomplete
id="itemNumber"
value={element.itemNumber}
options={this.state.Data}
getOptionLabel={option => option}
onChange={this.onChangehandleInput}
//onChange={() => this.onChangeCaptureAutComSerienr(index)}
renderInput={params => (
<TextField {...params} fullWidth />
)}
/>
</div>
);
</div>
)
}
}
【问题讨论】:
-
更改您的 onChangeHandleInput 函数以采用第三个索引参数。然后使用注释的 onChange,唯一的区别是将空函数“()”更改为:“(事件,值)”并将这些值与索引一起传递给 onChangeHandleInput
-
也许改变你的 fn 来接受这三个参数,然后...
onChange={(event, value) => this.onchangeHandleInput(event, value, index)}
标签: reactjs autocomplete material-ui onchange setstate