问题描述
组件反应
const OperationdisplayMenu = (props) => {
return(
<OperationdisplayMenuAll dataSpending={dataSpending}/>
<OperationdisplayMenuTooday todayRecords={todayRecords}/>
)
}
const Operationdisplay = ( {Spends,TodayRecords} ) =>
{
const dispatch = usedispatch();
useEffect(() => {
dispatch(todayRecords());
dispatch(fetchSpendings());
},[]);
return(
<OperationdisplayMenu dataSpending={Spends} todayRecords={TodayRecords}/>
)
}
const mapStatetoProps = state => {
return {
Spends: state.data.fetchedSpendings,TodayRecords: state.data.todayRecords
}
}
export default connect(mapStatetoProps,null)(Operationdisplay)
从商店到组件,我想从 ajax 请求中获取状态。 花费状态我得到正确
但是TodayRecords 状态,一开始是空加载的,然后正确加载。但是在组件中它仍然是空的。 *
action.js
action.js
export function todayRecords(){
return async dispatch => {
const userData = await userDataGetter();
const userID = userData.userId;
const date = new Date();
const DayEnd = date.getDate();
const YearEnd = date.getFullYear();
const MonthEnd = date.getMonth();
const DateStart = new Date(YearEnd,MonthEnd,DayEnd );
const DateEnd = new Date(YearEnd,DayEnd + 2);
try{
const responseSpends = await axios.post('/api/getRecordSpends/toDate',{userID,DateStart,DateEnd})
const responseEarns = await axios.post('/api/getRecordEarns/toDate',DateEnd})
await Array.prototype.push.apply(responseSpends.data,responseEarns.data);
const sortArr = await selectionSortDate(responseSpends.data);
console.log("sortArr",sortArr);
dispatch( {type: SET_TODAY_RECORDS,payload: sortArr});
}catch(e){
console.log(`Axios request Failed in getRecordSpend/toDate: ${e}`);
}
}
}
**reducer.js**
从“./types”导入{SET_TODAY_RECORDS}
const initialState = {
todayRecords: []
}
export const dataReducer = (state = initialState,action) => {
案例 SET_TODAY_RECORDS:
return { ...state,todayRecords: action.payload }
}
The screenshot shows that at the beginning I receive an empty state from the store,then it comes full.
https://ibb.co/cCR7B4d
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)