Maison > Questions et réponses > le corps du texte
P粉7148900532023-08-16 09:07:01
Lorsque vous créez un objet en utilisant des accolades comme { id: tableState }, la chaîne "id" est interprétée comme une clé statique au lieu de la valeur dynamique de la variable id. Vous devez utiliser des noms de propriétés calculés en JavaScript/TypeScript. Les noms de propriétés calculés vous permettent d'utiliser des valeurs dynamiques comme clés lors de la création d'objets.
// App.tsx--------------------------------------- React.useEffect(() => { setCallback((id: TableId, tableState: TableState) => { const map: Record<TableId, TableState> = { [id]: tableState }; // 在这里使用计算属性名 setTableStateMap(map); }); // Table Component------------------------------- // ... your other imports and code export const Table: React.FC<TableProps> = ({ id, }) => { let tableState: TableState | undefined; if (id) { tableState = stateMap[id]; // 现在这将正确地使用动态 id 访问值 } else { tableState = undefined; } // ... rest of your component code };