react memo包裹的子组件无效解决方法

常见问题:

明明子组件已经使用memo进行缓存了,为什么父组件数据发生改变时还是会造成子组件重新创建??

// 子组件
const MChildren = React.memo(Children)

//父组件
return(
    //...
    <MChildren getChildren={getChildren}></MChildren>
    //...
)

原因:

这是因为父组件重新创建时,他内部的数据也会重新被创建,原来声明的函数也会被重新创建,这就导致原来函数的堆地址发送变化,故子组件也会被重新创建。

解决方法:

使用useCallback方法来解决

    const getChildren = useCallback((name)=>{
        console.log('getChildren',name);
    },[])

将穿给子组件的函数用useCallback包裹起来就解决问题啦!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值