Как при нажатии на кнопку выбирать элемент объекта и выводить его?

Есть объект:
const test = {
   "title": {
       "t1":{
	      "id": 1,
	      "title":"Test1",
	      "category": "Test1111"
        },
       "t2":{
	      "id": 2,
	      "title":"Test2",
	      "category": "Test2222"
        },  
       "t3":{
     	  "id": 3,
	      "title":"Test3",
	      "category": "Test3333"
        }     
    }
}

Вывожу его:
{Object.keys(test.title).map(item => <div key={test.title[item].id}>{test.title[item].title} ---- {test.title[item].category}</div>)}
.
А теперь мне нужно решить следующую задачу:
Есть 3 кнопки. При нажатии на первую кнопку выводится t1, при нажатии на вторую - t2, на третью - t3. Как это сделать?
  • Вопрос задан
  • 222 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега React
const [ active, setActive ] = useState(null);
const item = test.title[active];

const onClick = e => setActive(e.target.dataset.id);

Кнопки:

{Object.keys(test.title).map(n =>
  <button key={n} data-id={n} onClick={onClick}>{n}</button>
)}

Выбранный элемент:

{item && <div>{item.title} ---- {item.category}</div>}
Ответ написан
@Dozalex
Senior Frontend Developer
Добавьте фильтрацию
{Object.keys(test.title).filter(key => key === 't1').map(key => <div key={test.title[key].id}>{test.title[key].title} ---- {test.title[key].category}</div>)}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы