import { useState } from 'react' interface SaveLoadSelectionProps { salt: string setSalt: (salt: string) => void count: number setCount: (count: number) => void participants: string[] setParticipants: (participants: string[]) => void } // 定义 SelectionData 类型 interface SelectionData { salt: string count: number participants: string[] } export default function SaveLoadSelection({ salt, setSalt, count, setCount, participants, setParticipants, }: SaveLoadSelectionProps) { // 使用 SelectionData 类型更新 savedSelections 的类型 const [savedSelections, setSavedSelections] = useState<{ name: string; data: SelectionData }[]>([]) const [selectionName, setSelectionName] = useState('') const saveSelection = () => { if (selectionName) { const newSelection = { name: selectionName, data: { salt, count, participants }, } setSavedSelections([...savedSelections, newSelection]) setSelectionName('') } } // 使用 SelectionData 类型更新 loadSelection 的参数 const loadSelection = (selection: { name: string; data: SelectionData }) => { setSalt(selection.data.salt) setCount(selection.data.count) setParticipants(selection.data.participants) } const deleteSelection = (index: number) => { const newSelections = [...savedSelections]; newSelections.splice(index, 1); setSavedSelections(newSelections); }; return (

保存/加载选择

setSelectionName(e.target.value)} placeholder="输入保存名称" className="flex-grow border-gray-300 rounded-md shadow-sm focus:ring-indigo-500 focus:border-indigo-500 dark:bg-gray-700 dark:border-gray-600 dark:text-white" />
{savedSelections.map((selection, index) => (
{selection.name}
))}
) }