如果我浏览器引用过,ReactJS useEffect会丢失从useSelector检索的数据

时间:2020-10-09 00:50:08

标签: reactjs redux react-redux react-hooks

我发现redux在useEffect中存在一个神秘问题,

我有一个从API名称获取数据的操作:fetchOrders()

因此,在 allOrder.js 页面中,我输入了以下代码:

//dispatch action
const dispatch = useDispatch();
const initOrders = useCallback(() => dispatch(fetchOrders()), [dispatch]);

//selectors
const mapState = useSelector((state) => {
    return {
        orders: Object.values(state.orders),
        resturantInfo: state.resturant.branchDetails,
        async: state.async.loading,
    };
});


useEffect(() => {
    initOrders();
    console.log(mapState.orders);
}, [initOrders]); // eslint-disable-line react-hooks/exhaustive-deps

然后:

return(JSX and show all data from mapState use selector) 

问题是,如果我尝试执行双浏览器刷新,则数据将显示在return函数中,但内部使用效果将使我处于一个空的redux状态,为什么!

安装组件一次 enter image description here

刷新浏览器后 enter image description here

0 个答案:

没有答案