下面是我的动作和reducer文件 - 在我的组件状态中我只看到this.props.mainData - 但是其他的subdataOneData等,没有被加载到状态 - 直到reducer我看到正在调度正确的动作我还看到了子调用的数据 - 但它们没有到达我的组件 - 我有mapStatetoprops - 我在做的地方
新问题:根据更新的代码 - 当我在reducer中打印出有效负载时 - 我看到带有api数据的maindata但SubData [{},{},{}] ..?
更新代码:从'../constants/types'导入;
export function getMainData() {
return async function getMainData(dispatch) {
const { data } = await getMainDataAPI();
const subData = data.map((item) => {
const endpoint = 'build with item.name';
return Request.get(endpoint);
});
console.log('subddd' + subData); prints -> **[object Promise],[object Promise],[object Promise]**
dispatch({
type: GET_DATA_AND_SUBDATA,
payload: { data, subData }
});
};
}
async function getMainDataAPI() {
const endpoint = 'url';
return Request.get(endpoint);
}
1 回答
问题在于您分派操作的方式 .
您没有同时为
mainData
和subdataOneData
提供数据 .首先渲染你的
subdataOneData
是不可用的 .您甚至没有在reducer中指定默认值,因此它将是
undefined
.你可以像这样改变你的动作
并相应地更改您的减速机,以便立即设置所有数据 .
注意:在reducer中设置初始状态也是一种很好的做法 .