api没有在reactjs中的IE11中调用第二次单击

时间:2019-07-29 09:12:41

标签: javascript reactjs axios

我仅在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

请帮助。谢谢。

0 个答案:

没有答案