Reactjs onChange和onSelect在React钩子的循环内不适用于Select

Reactjs onChange和onSelect在React钩子的循环内不适用于Select,reactjs,select,Reactjs,Select,我有一个场景,我需要在循环中有多个Select标记,但是onselect事件对其中任何一个都不起作用,请查找下面的代码。提前谢谢 const ThirdStepMap = ({csvFields, profileFileds}) => { // last row, no border-bottom class to be added const [selectData, setSelectData] = useState(''); console.log('selectData', s

我有一个场景,我需要在循环中有多个Select标记,但是onselect事件对其中任何一个都不起作用,请查找下面的代码。提前谢谢

const ThirdStepMap = ({csvFields, profileFileds}) => { // last row, no border-bottom class to be added

const [selectData, setSelectData] = useState('');

console.log('selectData', selectData);
return(
    <div className="modal-body no-pad"> 
    <div className="ap-map-head">
        <div className="row">
            <div className="col p-0">CSV file field</div>
            <div className="col p-0">Airborne fields</div>
        </div>
    </div>
    <div className="ap-map-body">
        {
            csvFields.map(e => {
                return(
                    <div className="row border-bottom">
            <div className="col p-0">
                <div className="form-group static-text d-flex align-items-center">
                    <label for="staticEmail" className=" col-form-label">{e}</label>
                </div>
            </div>
            <div className="col p-0">
                <div className="form-group">
                    <select className="form-control" onChange={(e) => setSelectData(e.target.value)}>
                    {
                        profileFileds.map(r => <option key={r.fieldName} selected={e.toLowerCase().startsWith(r.fieldName.toLowerCase().substr(0,3)) ||  r.fieldName === 'select'} value={r.fieldName}>{r.displayName}</option>)
                    }
                    </select>
                </div>
            </div>
        </div>
                )
            })
        }

    </div>
  </div>
)
const ThirdStepMap=({csvFields,profilefiles})=>{//最后一行,无需添加边框底部类
const[selectData,setSelectData]=使用状态(“”);
console.log('selectData',selectData);
返回(
CSV文件字段
空降场
{
csvFields.map(e=>{
返回(
{e}
setSelectData(例如target.value)}>
{
profileds.map(r=>{r.displayName})
}
)
})
}
)

}

这里的问题是没有将函数调用与事件绑定。为此,你只需要这样做

<select className="form-control" onSelect={(e) => this.setSelectData.bind(this, e.target.value)}>
this.setSelectData.bind(this,e.target.value)}>

你到底有什么问题?console.log()语句是否记录了正确的值?我相信您刚刚忘记在select元素上添加值={selectData}

处理程序被称为
onChange
,而不是
onSelect
@Jayce444 onChange也不工作hi Mayank,我使用的是react钩子,所以不需要绑定。我想,但是你没有在任何地方提到过。请找到这个组件的完整代码