ReactJs — карта вкладок дизайна Ant не отображает содержимое

Мои компоненты использовали Фреймворк ReactJs, созданный с помощью Муравей дизайн пользовательского интерфейса. Мое застревание - это рендеринг содержимого вкладок.

Я пытаюсь вложить компонент LoginForm в компонент TabsCard.

Примечание: компонент LoginForm может успешно отображаться независимо без вложенности.

Компонент, отображаемый на изображении, которое я прикрепил:

ReactJs — карта вкладок дизайна Ant не отображает содержимое

Вот мой код:
TabsCard.js

import React, { useState } from 'react';
import { Card } from 'antd';
import LoginForm from '../LoginForm/index.js';

function TabsCard() {
  const tabList = [
    {
      key: 'tab1',
      tab: 'Sign in'
    },
    {
      key: 'tab2',
      tab: 'Sign up'
    }
  ];

  const contentList = {
    tab1: <LoginForm />,
    tab2: <p>signup</p>,
  };

  const [activeTab, setActiveTab] = useState('tab1');
  const handleTabChange = key => {
    setActiveTab(key);
  };

  return (
    <Card
      style = {{ width: '400' }}
      tabList = {tabList}
      activeTabKey = {activeTab}
      onTabChange = {key => {
        handleTabChange(key);
      }}
    >
      {contentList[setActiveTab]}
    </Card>
  );
}
export default TabsCard;

Спасибо за поддержку!

используйте {contentList[activeTab]} вместо {contentList[setActiveTab]}

zb22 14.05.2022 12:06

@ zb22 твой код сработал для меня. возможно, мне не хватает мышления при разработке компонента. Спасибо!!

littleAnt 14.05.2022 13:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
29
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Изменить с contentList[setActiveTab] на contentList[activeTab]

Пример полного кода

import React, { useState } from 'react';
import { Card } from 'antd';
import 'antd/dist/antd.css';

function TabsCard() {
  const tabList = [
    {
      key: 'tab1',
      tab: 'Sign in'
    },
    {
      key: 'tab2',
      tab: 'Sign up'
    }
  ];

  const contentList = {
    tab1: <div>Login form</div>,
    tab2: <p>signup</p>,
  };

  const [activeTab, setActiveTab] = useState('tab1');
  const handleTabChange = key => {
    setActiveTab(key);
  };

  return (
    <Card
      style = {{ width: '400' }}
      tabList = {tabList}
      activeTabKey = {activeTab}
      onTabChange = {key => {
        handleTabChange(key);
      }}
    >
      {contentList[activeTab]}
    </Card>
  );
}
export default TabsCard;

Надеюсь, я помог тебе

Хорошего дня!

Я проверял вопрос перед ответом. Итак, посвятив свое время и самостоятельно найдя ошибку, я решил добавить свой ответ, несмотря на то, что кто-то уже ответил.

Zaquiel Rodriguez Arce 14.05.2022 12:41

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