From 9ccd15319e7c9095bd4c4f9646df8507e27dcc18 Mon Sep 17 00:00:00 2001 From: richarjiang Date: Tue, 9 Sep 2025 08:31:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9C=A8=E9=A3=9F=E7=89=A9=E5=BA=93?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E4=B8=AD=E9=9B=86=E6=88=90=E6=AF=8F=E6=97=A5?= =?UTF-8?q?=E8=90=A5=E5=85=BB=E6=95=B0=E6=8D=AE=E5=88=B7=E6=96=B0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E4=BC=98=E5=8C=96=E9=A5=AE=E9=A3=9F=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=88=90=E5=8A=9F=E5=90=8E=E7=9A=84=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BD=93=E9=AA=8C=EF=BC=9B=E7=A7=BB=E9=99=A4=E8=90=A5=E5=85=BB?= =?UTF-8?q?=E7=9B=AE=E6=A0=87=E8=AE=A1=E7=AE=97=E9=80=BB=E8=BE=91=E4=BB=A5?= =?UTF-8?q?=E7=AE=80=E5=8C=96=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/food-library.tsx | 9 ++++++++- components/NutritionRadarCard.tsx | 3 --- 2 files changed, 8 insertions(+), 4 deletions(-) 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 [