我有一个组件League.js
,其中有 4 个包含联盟团队详细信息的框。
团队详细信息来自此 API =>https://www.api-football.com/demo/api/v2/teams/league/${id}
当我单击每个联赛框时,我正在组件中填充下拉列表Details.js
每当我单击每个联赛框以便在team_id
名为. 为此,我向此端点发出呼叫请求 =>League.js
Stat.js
https://www.api-football.com/demo/api/v2/statistics/${league}/${team}
所以我需要传递league_id
和作为一个参数,我可以正确地得到两个值,但是我在如何传递每个联赛的球队team_id
第一名方面做错了。team_id
这些是步骤,我只放了相关代码。我正在创建firstTeamStats
我正在调度的状态
在我的行动中 => index.js
export const RECEIVE_FIRST_TEAM_STATS = "RECEIVE_FIRST_TEAM_STATS";
export const receivedFirstTeamStats = json => ({
type: RECEIVE_FIRST_TEAM_STATS,
json: json
});
.get(`https://www.api-football.com/demo/api/v2/teams/league/${id}`)
.then(res => {
let teams = res.data.api.teams;
dispatch(receivedFirstTeamStats(teams[0].team_id));
})
在我的reducer => index.js
case RECEIVE_FIRST_TEAM_STATS:
return {
...state,
firstTeamStats: action.json,
isTeamsDetailLoading: false
};
在我的 League.js 组件中
import {getTeamsStats} from "../actions";
const mapStateToProps = state => ({
firstTeamStats: state.firstTeamStats
});
const mapDispatchToProps = {
getStats: getTeamsStats,
};
const onClick = (evt, id, firstTeamStats) => {
evt.preventDefault();
getDetail(id); \\ get the team names in the Detail.js component
getStats(id, firstTeamStats); \\ get the state value for the first team in the dropdown in Detail.js component
};
<a href={`#${item.league_id}`} onClick={(e) => onClick(e, item.league_id, firstTeamStats)}
现在firstTeamStats
在onclick
上面的方法中正确返回了第一支球队的状态值,但不是现有联赛的状态值,而不是我点击的那个我想要的值。
但是我可以在Details.js
组件中正确获取此内容,我已将其放在{firstTeamStats}
演示中,在那里我复制了我的案例 => https://codesandbox.io/s/romantic-solomon-6e0sb(使用 CORS Unblock Chrome 扩展程序查看)
所以问题是,我怎样才能在方法中{firstTeamStats}
正确传递我的联盟第一的状态在哪里?League.js
onclick
getStats(id, firstTeamStats)
{firstTeamStats}
team_id