Мои компоненты использовали Фреймворк ReactJs, созданный с помощью Муравей дизайн пользовательского интерфейса. Мое застревание - это рендеринг содержимого вкладок.
Я пытаюсь вложить компонент LoginForm в компонент TabsCard.
Примечание: компонент LoginForm может успешно отображаться независимо без вложенности.
Компонент, отображаемый на изображении, которое я прикрепил:
Вот мой код: 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;
Спасибо за поддержку!
@ zb22 твой код сработал для меня. возможно, мне не хватает мышления при разработке компонента. Спасибо!!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Изменить с 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;
Надеюсь, я помог тебе
Хорошего дня!
Я проверял вопрос перед ответом. Итак, посвятив свое время и самостоятельно найдя ошибку, я решил добавить свой ответ, несмотря на то, что кто-то уже ответил.
используйте
{contentList[activeTab]}вместо{contentList[setActiveTab]}