如何解决为什么手机拒绝读取Math.max值?
长话短说,我一直在为一个客户在Full Stack网站上工作,我已经完成了所有工作,但是我遇到了问题!
由于某些原因,当我使用Math.max(...shipArray)
时,它将在PC上正常工作,但是当您尝试在移动设备上查看时。它返回NaN,这也会影响shoppingTotal
!
无论如何,这是我的代码:
const shippingCost = () => {
const basket = JSON.parse(window.localStorage.getItem("productData"));
const shipArray = [];
let shippingTotal = 0;
if(!basket)
setBasketEmpty(true);
basket.map((item,key) => {
shipArray.push(item.product.shipping_cost);
});
console.log(shipArray)
shippingTotal = shippingTotal + Math.max(...shipArray);
updateShoppingTotal(shippingTotal);
}
const updateShoppingTotal = (shipping) => {
var tempCost = 0;
var finalCost = 0;
var tempCostArray = [];
var quantity = window.localStorage.getItem("productData");
if(!storageData)
setBasketEmpty(false);
if(quantity){
JSON.parse(quantity).map(quan => {
tempCost = quan.product.product_price * quan.quantity;
tempCostArray.push(tempCost);
});
tempCostArray.forEach(item => {
if(!isNaN(item)){
finalCost = finalCost + item + shipping;
}
});
setShipping(shipping);
window.localStorage.setItem("originalPrice",parseFloat(finalCost).toFixed(2));
window.localStorage.setItem("basketTotal",parseFloat(finalCost).toFixed(2))
setShoppingTotal(parseFloat(finalCost).toFixed(2))
}
}
我也在使用ReactJS,而不是React-Native。
谢谢
编辑:为了安全起见,我尝试手动输入一些随机数,这似乎是问题所在的shipArray
,所以如果有人知道为什么要添加一个非数字,编号,然后将是有帮助的!
解决方法
可能是传播操作...
如果您正在旧手机上进行测试(尤其是诸如廉价的“刻录机” TracFones之类的东西),那么它们就没有很多现代JS功能(很确定没有扩散,没有箭头功能,甚至可能没有? )。
我曾经为那些以及许多您无法使用的现代JS开发。他们通常运行的是Android 4.4或更早版本。
不错的资源是can I use(指向点差的链接)。您会注意到,Android 4.4不支持
编辑:如果此代码是由Babel编译的,则可能用更老的东西代替了这种东西。
,如果我有大脑,那将很危险!哈哈
因此,要查看产品,我有2个组件,一个用于大型设备,一个用于移动电话。
对于第一个组件,我将运输成本添加到localStorage中,但是我没有为移动组件做这笔费用,因此当我尝试在移动设备上阅读item.product.shipping_cost
时,当然找不到它是说undefined
。
此血统专线在这里:
oldBasket.push({product: {shipping_cost:this.state.productData.shipping_cost,});
该行不在移动组件上!
感谢大家的建议
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。