AppInitializer.tsx 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import React, { useEffect } from 'react';
  2. import { useDispatch, useSelector } from 'react-redux';
  3. import { getPatientTypes } from '@/states/patientTypeSlice';
  4. import { getBodyParts } from '@/states/bodyPartSlice';
  5. import { initializeProductState } from '@/states/productSlice';
  6. import type { RootState, AppDispatch } from '@/states/store';
  7. interface AppInitializerProps {
  8. onInitialized: () => void;
  9. }
  10. const AppInitializer: React.FC<AppInitializerProps> = ({ onInitialized }) => {
  11. const dispatch = useDispatch<AppDispatch>();
  12. const userInfo = useSelector((state: RootState) => state.userInfo);
  13. useEffect(() => {
  14. const fetchData = async () => {
  15. if (userInfo && userInfo.token) {
  16. await dispatch(getPatientTypes());
  17. await dispatch(
  18. getBodyParts({
  19. params: {},
  20. })
  21. );
  22. await dispatch(initializeProductState());
  23. }
  24. onInitialized();
  25. };
  26. fetchData();
  27. }, [dispatch, userInfo, onInitialized]);
  28. return <div>正在初始化,请稍候...</div>;
  29. };
  30. export default AppInitializer;