#javascript #reactjs #dictionary
#язык JavaScript #реагирует на #словарь
Вопрос:
Я попытался показать для каждого элемента в массиве данных только ключ имени, который мне нужен, чтобы показать его в таблице.
const data = [{id: "111", name: "Danny", city: "NYC"}, {id: "222", name: "Roni", city: "LDN}, {id: "333", name: "Suzi", city: "TLV", {id: "444", name: "John", city: "SF"} ] const config = [{fieldToShow: "name"}] lt;tbodygt; {data.map((row) =gt; { return ( lt;trgt; {config.map((value) =gt; { return lt;tdgt;{row[value.field]}lt;/tdgt;; })} lt;/trgt; ); })}
но это не сработает …
Ответ №1:
У вашего объекта конфигурации есть ключ fieldToShow
:
const config = [{fieldToShow: "name"}]
пока вы пытаетесь получить ключ field
на своей карте. Вы меняете эту строку:
return lt;tdgt;{row[value.field]}lt;/tdgt;;
к этому:
return lt;tdgt;{row[value.fieldToShow]}lt;/tdgt;;
Ответ №2:
ты можешь сделать вот так:
export default function Test() { const data = [ { id: '111', name: 'Danny', city: 'NYC' }, { id: '222', name: 'Roni', city: 'LDN' }, { id: '333', name: 'Suzi', city: 'TLV' }, { id: '444', name: 'John', city: 'SF' }, ]; const config = [{ fieldToShow: 'name' }]; return ( lt;tbodygt; {data.map((row) =gt; ( lt;trgt; {data.map((row) =gt; ( lt;trgt; {config.map((value) =gt; ( lt;tdgt;{row[value.fieldToShow]}lt;/tdgt; ))} lt;/trgt; ))} lt;/trgt; ))} lt;/tbodygt; ); }