你可以通过修改defaultActiveKey属性来设置默认选中的标签页,将activeCode作为其值即可。然后,在子组件中接收并使用该值。
以下是修改后的代码示例:
const [hotelNewTagInfo, setHotelNewTagInfo] = useState([]);
const [activeTab, setActiveTab] = useState('');
const { activeCode } = getQuery();
useEffect(() => {
oneLeveolInfo({ type: 'HotelTagType' }).then(res => {
setHotelNewTagInfo(res.HotelTagType);
setActiveTab(activeCode || res?.HotelTagType[0].code); // 设置默认选中项为activeCode,如果不存在则使用第一个标签的code
});
}, []);
const handleTabChange = key => {
const selectedItem = hotelNewTagInfo.find(item => item.code === key);
if (selectedItem) {
setActiveTab(selectedItem?.code);
}
};
return (
<div className="service-tag-dict">
<Tabs defaultActiveKey={activeTab} onChange={handleTabChange}>
{hotelNewTagInfo.map((item: any, index: any) => (
<Tabs.TabPane tab={item.name} key={item.code}>
<AmenityLabels
tabsTitle={activeTab === item.code ? item.name : ''}
tabsCode={activeTab === item.code ? item.code : ''}
/>
</Tabs.TabPane>
))}
</Tabs>
</div>
);
在这个例子中,默认选中的标签页会优先使用传递进来的 activeCode,如果没有传递,则会使用第一个标签页的 code 值作为默认选中项。然后,将 activeTab 的值传递给子组件以实现对应的效果。
内容由零声教学AI助手提供,问题来源于学员提问




