Пользовательский стиль вкладок React

Я использую готовый компонент вкладок из https://github.com/reactjs/react-tabs. Он работает нормально, но я немного застрял с настройкой стилей. У меня нет опыта работы с React, поэтому я немного растерялся и не знаю, с чего начать, потому что стили теперь разрешаются путем добавления классов, соответствующих элементам компонента (см. код ниже).

Это то, чего я хочу добиться: выбранная вкладка меняет цвет

Вот что у меня получилось: все вкладки серые

т.е. мне нужно, когда я нажимаю вкладку 1, она становится белой, а если я нажимаю вкладку 2, вкладка 1 становится серой, а вкладка 1 становится белой.

Я смог установить выбранную по умолчанию вкладку с помощью события onChange (теперь это вкладка 2), я стилизовал react-tabs__tab--selected в файле css, но мне почему-то не хватает связи, мои вкладки все время серые.

const [tabIndex, setTabIndex] = useState(1);

...
return ( ...
<Tabs selectedIndex = {tabIndex} onSelect = {(index) => setTabIndex(index)} id = "controlled-tabs">
    <TabList className = "my-6 flex flex-col sm:flex-row sm:justify-between sm:items-center ">
            <Tab
              key = "tab1"
              
              className = "cursor-pointer py-4 px-8 bg-grey-background border border-grey-intermediate flex flex-grow">
              Tab 1

            <Tab
              key = "tab2"
              
              className = "cursor-pointer py-4 px-8 bg-grey-background border border-grey-intermediate flex flex-grow">
              Tab 2
            </Tab>

            <Tab
              key = "tab3"
            
              className = "cursor-pointer py-4 px-8 bg-grey-background border border-grey-intermediate flex flex-grow">
              Tab 3
            </Tab>
          </TabList>
....
</Tabs>

не могли бы вы создать где-нибудь демонстрационную игровую площадку с вашим кодом? как здесь, например: codeandbox.io, если вы сделаете это, я был бы более чем счастлив попытаться помочь вам, так как в настоящее время с вашей информацией таким образом трудно помочь.

Dario Piotrowicz 22.12.2020 15:22

@DarioPiotrowicz, я создал один, но он не использует мои стили (я использую Tailwindcss и добавил зависимость в песочницу, но вкладки все равно не выглядят как вкладки, хотя действуют как вкладки). В моем реальном коде они выглядят как серые вкладки с картинки выше. zo2hf.csb.app

Stacey 23.12.2020 12:41
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
2
4 532
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Это оказалось до безобразия просто. :) Выбранный класс вкладок был необходим.

 <Tabs id = "controlled-tabs" selectedTabClassName = "bg-white">

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