【发布时间】:2021-07-19 19:39:23
【问题描述】:
我现在正在尝试使用来自 redux 存储的数据调用 API。
假设我有 2 个 API 调用,Api A 和 Api B 在父组件中我已经调用了 API A 并将数据保存在 redux 中。
现在我在另一个组件中。我需要打电话给Api B。但是 API B 有一个params,我将从API A 获得。所以在第二个组件里面,我使用useEffect钩子来调用数据。
为了从 redux 中获取参数,我使用了useSelector Hook。
在第二个组件中,UseEffect Hook 是这样的:
useEffect(() => {
let splitText = cartList?.OrderDTO?.DeliveryCountry;
let deliveryAddressId = splitText?.split(',');
if (cartList.OrderDTO?.DeliveryCountry !== '') {
dispatch(getShippingMethodById(token.access_token, deliveryAddressId));
} else {
dispatch(
getShippingMethodById(
token.access_token,
cartList.OrderDTO?.CustomerAddressId,
),
}
}, []);
所以在useEffect 钩子中,我从redux 获得了deliveryAddressId。要将数据从 redux 提取到组件中,我使用 useSelector hook
let cartList = useSelector((state) => state.productReducer.cartList);
问题是,当我尝试在 useEffect 钩子内访问它时,我总是得到 undefined for cartlist
所以调用的调度总是不确定的。那么我该怎么做才能使这个钩子起作用呢?
【问题讨论】:
-
需要在useEffect依赖数组中添加
cartlist
标签: reactjs react-native redux react-redux