ホームページ  >  に質問  >  本文

オブジェクト プロパティのキーとして変数値ではなく変数名を使用するのはなぜですか?

<p><code>Record<TableId, TableState></code>オブジェクト(<code>type TableId = string;</code>)を使用しようとしています。ただし、<code>setTableStateMap(map)</code> でキーと値のペアを設定した後にレコード オブジェクトの内容を印刷すると、オブジェクト <code>{id: {… }} </code> 'id' 変数に渡した値の代わりに。 </p> <pre class="brush:php;toolbar:false;">// App.tsx---------------------------- -- ---------- React.useEffect(() => { setCallback((id: TableId, tableState: TableState) => { const マップ: Record = { id: tableState }; setTableStateMap(マップ); }); // テーブルコンポーネント ---------------------------------- タイプ TableId = 文字列; type Callback = (id: TableId, state: TableState) => void; let コールバック: コールバック; エクスポート関数 setCallback(callbackInput: Callback) { コールバック = コールバック入力; } let stateMap: Record = {}; エクスポート関数 setTableStateMap(map: Record) { stateMap = マップ; } インターフェース TableProps { id?: テーブル ID; } エクスポート const テーブル: React.FC<TableProps> = ({ ID、 }) => { let tableState: TableState | 未定義; if (id) { tableState = 状態マップ[id]; // stateMap のキーは変数 id の値ではなく 'id' に設定されます // {id: {…}} } それ以外 { tableState = 未定義; } };</pre> <p><br /></p>
P粉129168206P粉129168206406日前412

全員に返信(1)返信します

  • P粉714890053

    P粉7148900532023-08-16 09:07:01

    { id: tableState } のような中括弧を使用してオブジェクトを作成すると、文字列「id」は id 変数の動的値ではなく静的キーとして解釈されます。 JavaScript/TypeScript では計算されたプロパティ名を使用する必要があります。計算されたプロパティ名を使用すると、オブジェクトの作成時に動的な値をキーとして使用できます。

    リーリー

    返事
    0
  • キャンセル返事