typeerror:无法读取未定义的属性(读取'id') 试图构建链接时,这发生在我的产品组件中:

问题描述 投票:0回答:1

useEffect(() => { if (location.state?.product) { setProduct(location.state.product); } else if (id && !hasFetched.current) { hasFetched.current = true; fetchProductById(id); } }, [id, setProduct, fetchProductById, location.state]);

确保在缺失时获取产品。 添加控制台。跟踪(产品,“产品产品组件”);

TROCE确认产品在最初渲染完成之前已未定义。

预期的行为

在新标签或刷新的产品页面打开产品页面时,应在不崩溃的情况下正确获取产品。 NAVLINK只能在可用产品数据后渲染。

实现行为
如果渲染时缺少产品,则product.Category.ID查找失败。
在获取完成之前,出现错误,打破页面。
    

在反应中,总是有第一个渲染循环在执行之前,在此期间(在这种情况下)

UseEffect()

将为

productnull

,具体取决于其初始化的方式。

为了防止这引起问题,您可以在渲染中放置一个“警卫”,例如: undefined

javascript reactjs
1个回答
0
投票

{product ? <NavLink ...>...</NavLink> : null }

    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.