【发布时间】:2020-08-31 10:02:42
【问题描述】:
我正在使用 expo 构建一个带有 React Native 的应用程序,并且我实现了 Redux。现在在我的组件中,我需要从 API 中获取一些东西来填充列表。我决定使用 useEffect 挂钩来实现这一点。现在在我的 useEffect 钩子的依赖数组中,我放置了我的 Redux 状态列表。像这样:
const onFetchOrders = async (query: string, offset: number, limit?: number, filter?: {}) => {
await props.fetchOrders('', 0);
}
useEffect(() => {
setIsLoading(true);
onFetchOrders('', 0);
if (props.orders.length > 0) {
setOrders(props.orders)
} else {
setIsLoading(true);
}
}, [props.orders])
订单正在映射到另一个组件中的道具:
const mapState = (state : RootState) => ({
orders: state.orders.items,
debtor: state.debtor.debtor,
totalCount: state.orders.totalCount
})
const mapDispatch = (dispatch: any) => {
return {
fetchOrders: (query?: string, offset?: number, limit?: number, filters?: {}) => dispatch(tFetchOrders(query, offset, limit, filters)),
fetchDebtor: (uuid: string) => dispatch(thunkFetchDebtor(uuid)),
fetchCredentials: () => dispatch(thunkFetchCredentials()),
};
}
//const connector = connect(mapState, mapDispatch)(Root);
export const connector = connect(mapState, mapDispatch);
export type OrdersProps = ConnectedProps<typeof connector> & OrderStackNavProps<"Orders">;
现在,如果我启动应用程序,我的 useEffect 挂钩会不断重新呈现,因为订单数组中似乎有更新。
【问题讨论】:
-
也许
onFetchOrders会更新您的订单数组? -
为什么要使用内部订单变量和props.orders?
标签: reactjs react-native redux redux-thunk