我遇到了一个无法解决的问题。在我正在进行的一个项目中,当我点击一种颜色时,T恤的颜色应该会改变,但同时我得到了一个error。我真的需要帮助。https://github.com/ewaolczak/product-personalizer/commit/a70ad00e360bc96de28c32e27c9c8ee9b9626a6a?w=1
我已经把课程材料读了好几遍,在网上搜索了解决方案,仍然不知道错误在哪里。
我遇到了一个无法解决的问题。在我正在进行的一个项目中,当我点击一种颜色时,T恤的颜色应该会改变,但同时我得到了一个error。我真的需要帮助。https://github.com/ewaolczak/product-personalizer/commit/a70ad00e360bc96de28c32e27c9c8ee9b9626a6a?w=1
我已经把课程材料读了好几遍,在网上搜索了解决方案,仍然不知道错误在哪里。
4条答案
按热度按时间4ioopgfo1#
在
OptionColor.js
的第25行,您尝试从props访问setCurrentColor()
,这很可能是抛出错误的地方,这是因为在Product.js
的第73行,使用<OptionColor>
组件,您没有传入名为“setCurrentColor”的prop,它等于一个函数。为了解决这个问题,我认为您应该在
Product.js
的第73行执行以下操作:roqulrg32#
在OptionColor.js文件中,你调用了
props.setCurrentColor(color)
,但是这个函数并不存在,因为父文件没有定义属性。在Product.js文件中,添加以下内容:
jgzswidk3#
出现错误的原因:
在
OptionColor
组件中,代码描述了每当单击按钮时,它将调用props.setCurrentColor(whatever-color)
,如下所示:这是告诉React调用传入组件的
setCurrentColor
参数,问题是,Product
组件没有传入setCurrentColor
函数,只传入了colors
数组。要修复:
将
Product
组件中的OptionColor
用法更改为:为
OptionColor
提供一种更改其父级状态的方法。8yparm6h4#
这是您的OptionColor.js:
在
<li>
的底部是这一行,它试图调用一个setCurrentColor
,这个函数没有传递给组件(它是未定义的):溶液
在Product.js中,更改:
收件人: