From c009afaa6c901e22a055aa23773b5bdcd612e87d Mon Sep 17 00:00:00 2001 From: Karasukaigan <80465610+Karasukaigan@users.noreply.github.com> Date: Wed, 2 Jul 2025 01:33:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DCheckbox=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=8F=97=E6=8E=A7=E4=B8=8E=E9=9D=9E=E5=8F=97=E6=8E=A7?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E7=9A=84=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复React警告"Checkbox is changing from uncontrolled to controlled." --- .../src/components/ui/checkbox.tsx | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/BillNote_frontend/src/components/ui/checkbox.tsx b/BillNote_frontend/src/components/ui/checkbox.tsx index 2d2e45a..93f1b69 100644 --- a/BillNote_frontend/src/components/ui/checkbox.tsx +++ b/BillNote_frontend/src/components/ui/checkbox.tsx @@ -1,10 +1,26 @@ import * as React from 'react' +import { useState, useEffect } from 'react'; import * as CheckboxPrimitive from '@radix-ui/react-checkbox' import { CheckIcon } from 'lucide-react' import { cn } from '@/lib/utils' -function Checkbox({ className, ...props }: React.ComponentProps) { +function Checkbox({ className, checked, onChange, ...props }: React.ComponentProps) { + const [isChecked, setIsChecked] = useState(checked || false); + + useEffect(() => { + if (checked !== undefined) { + setIsChecked(checked); + } + }, [checked]); + + const handleCheckChange = (newChecked: boolean) => { + setIsChecked(newChecked); + if (onChange) { + onChange({} as React.FormEvent); + } + }; + return (