Развернуть и свернуть Div в React

Песочница, показанная ниже, показывает два расширяющихся и сворачивающихся элемента div, которые я просто тестирую в качестве шаблона. Каждый из них будет переключать разворачивание/свертывание div, скрытого с правой стороны.

То, что я пытаюсь сделать, это сделать так, чтобы при нажатии, чтобы развернуть один div, другой рухнул. Как было бы проще всего добавить эту функциональность?

Был бы очень признателен за любые советы по логике или решение, чтобы заставить его работать. Я думаю, возможно, установить функцию handleClick, которая говорит, что когда div «x» является активным div, закройте все остальные, но я не совсем уверен в логике или решении здесь. Был бы признателен за любую помощь.

codeandbox: https://codesandbox.io/s/wandering-cherry-pk7xw?file=/src/NavButton.js

Спасибо.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
0
1 528
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Переключение меню по щелчку и одновременное закрытие другого.

      <div className = "iconBox">
        <div
          className = "navIcon"
          onClick = {() => {
            setToggle(!toggle);
            setToggle1(false);
          }}
        ></div>
      </div>
...
      <div className = "iconBox2">
        <div
          className = "navIcon"
          onClick = {() => {
            setToggle1(!toggle1);
            setToggle(false);
          }}
        ></div>
      </div>

codeandbox : https://codesandbox.io/s/flamboyant-banzai-58snd

Спасибо за вашу помощь в этом. Я ценю это. Мой последний вопрос: я планирую иметь четыре переключаемых элемента div. Есть ли более простой способ настроить функциональность, чтобы мне не приходилось писать четыре набора setToggle(false) для каждого div?

Gore Sometimes 11.12.2020 18:11

@GoreSometimes У вас может быть одно состояние для всех div, чтобы использовать только одно setState.

zmag 14.12.2020 02:03

Если вы не возражаете против моего вопроса, не могли бы вы показать мне пример этого или указать мне правильное направление, где я могу это сделать? Я полагаю, что это будет с useContext, но пока я только изучил основы реагирования. Ценю всю вашу помощь. Спасибо.

Gore Sometimes 15.12.2020 03:07

@GoreSometimes Вам не нужен useContext. Использование массива или объекта было бы хорошо. codeandbox.io/s/fancy-fast-nzez8

zmag 15.12.2020 03:36

Другие вопросы по теме