javascript - 无法访问 e.target.id 即使当我在反应中登录 e.target 时它在那里
问题描述
import { connect } from 'react-redux';
import { getClubs } from '../../actions/club';
import PropTypes from 'prop-types';
const ViewPlayers = ({ clubs, loading, getClubs }) => {
useEffect(() => {
getClubs();
}, [getClubs]);
const [form, editForm] = useState({
club_id: ''
});
const selClub = e => {
console.log(e.target); --> Has the id value set to the correct id
console.log(e.target.id); --> outputs empty string
};
const submitData = e => {};
return loading === true ? (
<div>
<h1>wait</h1>
</div>
) : (
<div className='container'>
<h3>View players</h3>
<form onSubmit={e => submitData(e)}>
<div className='form-group'>
<label className='mt-3'>
<strong>Select Club</strong>
</label>
<select
className='form-control mb-3'
name='club'
value={form.club_id}
onChange={e => selClub(e)}
>
{clubs.map(data => {
return (
<option key={data._id} id={data._id}>
{data.name}
</option>
);
})}
</select>
</div>
</form>
</div>
);
};
ViewPlayers.propTypes = {
loading: PropTypes.bool.isRequired,
clubs: PropTypes.array.isRequired,
getClubs: PropTypes.func.isRequired
};
const mapStateToProps = state => ({
clubs: state.club.data,
loading: state.club.loading
});
export default connect(mapStateToProps, { getClubs })(ViewPlayers);
好的,所以我已将 select 语句的选项标签上的 id 设置为当前俱乐部的 id。当我使用 console.log(e.target) 时,我可以看到为我的数据集中所有俱乐部设置的 id 值。但是,如果我 console.log(e.target.id) 我得到“空字符串”,即使它设置在上面的 console.log 到正确的 id???? 如果我做 e.target.value 我也得到正确的值???
怎么看不到 e,target.id ???
提前感谢您的帮助
解决方案
我不知道为什么您甚至需要在标签上使用该id
属性。您可以为您的标签option
指定一个,至少它是有意义的。对于标签,您要做的是指定它们的属性。然后你可以在你的处理程序中访问一个选定的值。id
select
option
value
e.target.value
onChange
<select
className='form-control mb-3'
name='club'
value={form.club_id}
onChange={e => selClub(e)}
>
{clubs.map(data => {
return (
<option key={data._id} value={data._id}>
{data.name}
</option>
);
})}
</select>
推荐阅读
- java - 仅关闭 ScheduledExecutorService 中的一项任务
- javascript - JS如何获取2个数组对象之间的匹配ID
- android - Xamarin Android - System.DllNotFoundException:android-pocketsphinx.so 处于发布模式
- flutter - 如何在 Flutter 中使用 Speech To Text Google API?
- c++ - 如何将本地数组传递给另一个函数调用?
- string - MIPS (MARS Simulator) - 如何在堆中存储编译时字符串文字
- gradle - 哪个版本的 sonarqube gradle 插件与 jdk 7 兼容?
- go - 如何在 Godog 中创建不同的套件并定义它们的执行顺序?
- c# - 在 web Api 2 RDLC 报表控制器中,为什么我不能返回 FILE?
- javascript - 在JS中检查一个数组的值与另一个数组的值