javascript - ReactJS查找数组防止返回未定义
问题描述
我想在brandData中获取brandName
但是当productBrandID在brandData中不可用时,它返回未定义
我不希望发生这种情况,我希望它返回一个值,例如---选择品牌---或者什么
<select className="form-control" id="productBrand" name="productBrand" value={productForm.productBrand} onChange={(e) => handleOnChange(e)}>
<option value={productForm.productBrandID}>
{productForm.productBrandID ? brandData.find(brand => brand.id === productForm.productBrandID).brandName : '--- Select Brand ---'}
</option>
</select>
解决方案
首先,处理.find()
未找到匹配项的情况。您可以为此使用可选链接:
brandData.find(brand => brand.id === productForm.productBrandID)?.brandName
其次,既然这可以安全地不返回任何值(而不是引发错误),那么您可以使用nullish 合并运算符来提供默认值:
brandData.find(brand => brand.id === productForm.productBrandID)?.brandName ?? '--- Select Brand ---'
一旦你有了它,确定你已经拥有的逻辑是否有效。将productForm.productBrandID
永远是null
或undefined
?如果是的话,任何brandData
记录都会有它的null
价值undefined
吗id
?我没想到会这样,所以这个新逻辑可能会完全取代你所拥有的逻辑:
<option value={productForm.productBrandID}>
{brandData.find(brand => brand.id === productForm.productBrandID)?.brandName ?? '--- Select Brand ---'}
</option>
推荐阅读
- r - 使用 mutate_at 重新编码多个列值并基于管道中的变异列创建新列
- vba - 要求更新每个单元格的值
- jquery - ASP.NET MVC 文件以纯文本格式下载
- fetch - 本机脚本获取和显示
- jquery - 字符串内部属性比较jquery
- react-native - 在我的 react-native 项目中,一些图标没有出现在我的项目中
- python-3.x - 我如何获得一个账户的推文列表?
- php - 结帐和购物车页面中的 woocommerce 自定义价格
- android - 如何从字符串值中获取纬度?
- python - 将变量从 views.py 传递到 forms.py 会导致表单提交时出错