react,redux无法从store获取状态

问题描述

组件反应

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 (将#修改为@)