我仅在IE 11中面临一些奇怪的问题。在chrome中,效果很好,但在IE api中,URL不在第二次点击时调用。我有清单页面,有n个已订购产品的记录。然后,在单击每一行后,将重定向到产品详细信息页面。在IE 11中,我单击的第一个产品将显示单击的产品的数据(如果我退回到后面),然后选择另一个产品,然后单击未更新的产品数据,该产品的数据显示的是旧产品。我检查了网络标签,其中第二次单击时未调用API网址。如果刷新产品数据页面,则将调用API并显示更新的数据。该API正在pproduct数据页面的componentDidMount
中调用。我只是通过使用this.context.router.history.push('/order-details?orderid=' + orderId);
即使是第二次点击,订单ID也会随着点击产品的变化而变化,只是点击时未调用API网址,而是在重新加载页面后调用。
这仅在IE 11
chrome中发生,mozilla效果很好。
下面是我的代码。
正在调用componentDidMount
getPROrderData(this.props.userId, localStorage.companyGuid, localStorage.languageId, PRNumber, OrderID)
.then((json) => {
if (json.data.table1.length > 0) {
alert(33)
let priceDecimal = 0.0;
//let grandFreightCost = 0.0;
//alert(OrderID)
this.setState({ orderData: json.data.table1 });
json.data.table1.map(data => (
priceDecimal = priceDecimal + parseFloat(Number(Math.round(((data.quantity * data.unitPrice) + data.freightCost) + 'e2') + 'e-2').toFixed(decimalValue))
// priceDecimal = priceDecimal + parseFloat(Number(Math.round(((data.quantity * data.unitPrice) + data.freightCost) + 'e2') + 'e-2').toFixed(decimalPrecision()))
));
// json.data.table1.map(data => (
// grandFreightCost = grandFreightCost + parseFloat(Number(Math.round(data.freightCost == null ? 0.0 : data.freightCode + 'e2') + 'e-2').toFixed(decimalPrecision()))
// ));
this.setState({ currencySymbol: json.data.table1[0].currencySymbol == null ? '$' : json.data.table1[0].currencySymbol })
this.setState({ grandTotal: priceDecimal });
// this.setState({ grandFreight: grandFreightCost });
}
if (json.data.table2.length > 0) {
this.setState({ orderVariantAttributeData: json.data.table2 });
}
if (json.data.table3.length > 0) {
this.setState({ orderArtworkData: json.data.table3 });
}
if (json.data.table4.length > 0) {
this.setState({ orderStatus: json.data.table4 });
}
if (json.data.table5.length > 0) {
this.setState({ orderComments: json.data.table5 });
}
this.setState({ loading: false });
}).catch(err => console.error(err));
产品分类页面,用于重定向到产品数据
orderIDClickHandler = (orderId) => {
this.context.router.history.push('/order-details?orderid=' + orderId);
}
alert(33)
也在每个产品列表上调用,只是api没有调用。
<script src="//cdn.polyfill.io/v2/polyfill.min.js"></script>
已添加到index.html
请帮助。谢谢。