React函数组件报Expected an assignment or function call错误,新手求助
解决React中的"no-unused-expressions"报错及代码问题
别着急,我帮你一步步拆解问题,你遇到的这个报错主要是代码里的语法错误和变量引用问题导致的,咱们逐个解决:
1. 先修复数组对象的语法错误
你定义的products7数组里,第二个和第三个对象的status: true后面都缺少逗号,这会直接导致JS解析失败,进而引发后续的报错。修复后代码如下:
var products7 = [ { name: 'Hollow Knight', id : 1, price: '3$', status : true, image: 'https://yuzu-emu.org/images/game/boxart/hollow-knight.png' }, { name: '60 Second!', id : 2, price: '4$', status : true, image: 'https://yuzu-emu.org/images/game/boxart/hollow-knight.png' }, // 补全status后的逗号 { name: 'Valiant Heart', id : 3, price: '5$', status : true, image: 'https://yuzu-emu.org/images/game/boxart/hollow-knight.png' }, // 补全status后的逗号 ];
2. 修复map循环里的变量引用与命名冲突
你的map函数存在几个关键问题:
- 把迭代的单个元素命名为
Product7,和你要渲染的组件名重名了,会导致React混淆,建议改成小写的product(JS规范里组件名首字母大写,普通变量小写) - 你现在引用的
products7.id、products7.image是整个数组对象,不是当前循环的单个元素,应该用迭代变量product来访问属性 key属性必须绑定到当前元素的唯一标识,也就是product.id,数组本身没有id属性
修复后的map代码:
let elements = products7.map((product, index) => { return <Product7 key={product.id} image={product.image} price={product.price} > {product.name} </Product7> });
3. 额外建议
- 函数组件里建议用
const代替var声明变量(比如const products7 = [...]),这是React开发的通用最佳实践 - 确保
Product7组件已经被正确定义/导入,且能接收你传递的image、price、children(产品名称)这些props
按照上面的步骤修改后,那个"no-unused-expressions"的报错应该就会消失了,你可以试试看~
内容的提问来源于stack exchange,提问作者Thanh Vinh
相关产品推荐
相关产品推荐

