ZBLOG

父组件 {hotelNewTagInfo.map((item: any, index: any) => { return ( ...

您可以使用 useRef 钩子和 useEffect 钩子的依赖项数组来实现只在初次渲染执行 levelInfo,并在参数变化时再次执行。以下是一个示例:

父组件:

import React, { useState } from 'react';
import { Tabs } from 'antd';
import AmenityLabels from './AmenityLabels';

const ParentComponent = () => {
  const [activeTab, setActiveTab] = useState('default');
  const hotelNewTagInfo = [
    { name: '标签1', code: 'code1' },
    { name: '标签2', code: 'code2' },
    // 其他标签...
  ];

  return (
    <Tabs defaultActiveKey={activeTab} onChange={setActiveTab}>
      {hotelNewTagInfo.map((item) => (
        <Tabs.TabPane tab={item.name} key={item.code}>
          <AmenityLabels tabsTitle="服务设施标签" tabsCode={item.code} />
        </Tabs.TabPane>
      ))}
    </Tabs>
  );
};

export default ParentComponent;

子组件:

import React, { useEffect, useRef } from 'react';

const AmenityLabels = (props) => {
  const firstRenderRef = useRef(true);

  useEffect(() => {
    if (firstRenderRef.current) {
      firstRenderRef.current = false;
    } else {
      levelInfo(props.tabsCode);
    }
  }, [props.tabsCode]);

  const levelInfo = (tabsCode) => {
    // 在这里处理 levelInfo 函数逻辑
    console.log('levelInfo 被执行', tabsCode);
  };

  return <div>Amenity Labels</div>;
};

export default AmenityLabels;

这样,当您的子组件接收到新的 tabsCode 参数时,levelInfo 函数会被执行,而在初次渲染时不会执行。


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

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

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?