【发布时间】:2020-05-08 10:28:36
【问题描述】:
我有一个组件有以下情况:
这是我在两个选择组件中选择两个球队(主场、客场)时的两种方法
const selectHomeTeamStat = evt => {
const { value } = evt.target;
setSelectedHomeOption(value);
getStats(leagueId, value, 'home');
};
const selectAwayTeamStat = evt => {
const { value } = evt.target;
setSelectedAwayOption(value);
getStats(leagueId, value, 'away');
};
如您所见,我可以将此字符串参数 'Home' 和 'Away' 传递给 getStats 请求,以便区分并创建两个不同的状态
在那之后,我意识到我实际上需要球队的州名,而不是字符串 'Home' 和 'Away'作为参数传递给getStats 请求
所以这变成了
const [selectedHomeName, setSelectedHomeName] = useState("");
const [selectedAwayName, setSelectedAwayName] = useState("");
const selectHomeTeamStat = evt => {
const { value } = evt.target;
const item = items.find(item => item.team_id == value);
setSelectedHomeOption(value);
setSelectedHomeName(item.name);
console.log('Home Team Name:', selectedHomeName);
getStats(leagueId, value, selectedHomeName);
};
const selectAwayTeamStat = evt => {
const { value } = evt.target;
const item = items.find(item => item.team_id == value);
setSelectedAwayOption(value);
setSelectedAwayName(item.name);
console.log('Away Team name:', selectedAwayName);
getStats(leagueId, value, selectedAwayName);
};
item.name 正确返回所选团队的名称,所以我希望看到 selectedHomeName 和 selectedAwayName 状态,但在我的 console.log 中我看不到它
console.log('Home Team Name:', selectedHomeName); => Team Name:
console.log('Away Team Name:', selectedAwayName); => Away Name:
所以问题是,我做错了什么?我如何在事件处理程序中将 这些状态 传递给 getStats 以进行区分?
【问题讨论】:
标签: javascript reactjs event-handling react-hooks setstate