ZBLOG

const [hotelNewTagInfo, setHotelNewTagInfo] = useState([]); const [activeTab, setActiveTab] = useState(''); const [tabsCode, setTabsCode] = useState(''); const [tabsKey, setTabsKey] = useState(''); useEffect(() => { oneLeve...

根据代码提供的信息,可以看出lastActiveTab变量在组件渲染时是为空的。这是因为lastActiveTab的赋值操作发生在一个effect钩子之后。

要确保在页面加载时就能获得非空的lastActiveTab,可以将赋值逻辑移到useEffect钩子内部,确保数据已经获取到后再进行赋值操作。例如:

const [hotelNewTagInfo, setHotelNewTagInfo] = useState([]);
const [activeTab, setActiveTab] = useState('');
const [tabsCode, setTabsCode] = useState('');
const [tabsKey, setTabsKey] = useState('');
let lastActiveTab;

useEffect(() => {
    oneLeveolInfo({ type: 'HotelTagType' }).then(res => {
        console.log(res?.HotelTagType[0]?.code,'duhao___res');
        setTabsCode(res?.HotelTagType[0]?.code);
        setHotelNewTagInfo(res.HotelTagType);
        const selectedItem = res.HotelTagType.find(item => item.code === activeTab);
        if (selectedItem) {
            setTabsCode(selectedItem.code);
            setTabsKey(activeTab);
        }
        lastActiveTab = activeTab;
    });
}, []);

const handleTabChange = key => {
    const selectedItem = hotelNewTagInfo.find(item => item.code === key);
    if (selectedItem) {
        setTabsCode(selectedItem.code);
        setTabsKey(key);
    }
    setActiveTab(key);
};

console.log(lastActiveTab, 'duhao——————————');

通过将赋值逻辑移入effect钩子内部,并将lastActiveTab声明为函数组件的变量,可以确保在页面加载时能够获取到非空的lastActiveTab值。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=16666

分享:
扫描分享到社交APP
{ oneLeve...&appkey=&pic=&searchPic=true")' title="分享到新浪微博" class="weibo"> { oneLeve...")' title="分享到QQ好友" class="qq"> { oneLeve...")' title="分享到QQ空间" class="qqzone">
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?