diff --git a/app/food-library.tsx b/app/food-library.tsx index 6babdb9..c3781f8 100644 --- a/app/food-library.tsx +++ b/app/food-library.tsx @@ -3,9 +3,11 @@ import { FoodDetailModal } from '@/components/model/food/FoodDetailModal'; import { HeaderBar } from '@/components/ui/HeaderBar'; import { Colors } from '@/constants/Colors'; import { DEFAULT_IMAGE_FOOD } from '@/constants/Image'; +import { useAppDispatch } from '@/hooks/redux'; import { useFoodLibrary, useFoodSearch } from '@/hooks/useFoodLibrary'; import { addDietRecord, type CreateDietRecordDto } from '@/services/dietRecords'; import { foodLibraryApi, type CreateCustomFoodDto } from '@/services/foodLibraryApi'; +import { fetchDailyNutritionData } from '@/store/nutritionSlice'; import type { FoodItem, MealType, SelectedFoodItem } from '@/types/food'; import { Ionicons } from '@expo/vector-icons'; import { Image } from 'expo-image'; @@ -39,6 +41,7 @@ export default function FoodLibraryScreen() { const mealType = (params.mealType as MealType) || 'breakfast'; // Redux hooks + const dispatch = useAppDispatch(); const { categories, loading, error, clearErrors, loadFoodLibrary } = useFoodLibrary(); const { searchResults, searchLoading, search, clearResults } = useFoodSearch(); @@ -176,7 +179,11 @@ export default function FoodLibraryScreen() { await addDietRecord(dietRecordData); } - // 记录成功后清空选择列表并返回 + // 记录成功后,刷新当天的营养数据 + const today = new Date(); + await dispatch(fetchDailyNutritionData(today)); + + // 清空选择列表并返回 setSelectedFoodItems([]); router.back(); } catch (error) { diff --git a/components/NutritionRadarCard.tsx b/components/NutritionRadarCard.tsx index 12f55eb..660aafc 100644 --- a/components/NutritionRadarCard.tsx +++ b/components/NutritionRadarCard.tsx @@ -108,9 +108,6 @@ export function NutritionRadarCard({ }: NutritionRadarCardProps) { const [currentMealType] = useState<'breakfast' | 'lunch' | 'dinner' | 'snack'>('breakfast'); const [showFoodOverlay, setShowFoodOverlay] = useState(false); - // 计算营养目标 - const calorieGoal = nutritionGoals?.calories ?? 2000; - const proteinGoal = nutritionGoals?.proteinGoal ?? 50; const nutritionStats = useMemo(() => { return [