You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React表单特定价格低于成本价时警告消息未显示问题

React价格管理表单警告功能失效问题

问题背景

我正在开发一个React应用,其中包含价格管理表单,支持批发价(Wholesale price)、**调拨价(Transfer price)和售价(Sales price)**三种类型。需求是当任一价格输入值低于成本价时显示警告消息,但当前功能完全失效——不仅警告弹窗不出现,就连我添加的排查日志也没有执行。

相关代码片段

const COST_PRICE_TYPE = 'cost';
const SALES_PRICE_TYPE = 'sales';
const TRANSFER_PRICE_TYPE = 'transfer';
const WHOLESALE_PRICE_TYPE = 'wholesale';

const handleSubmit = async (e) => {
    e.preventDefault();
    setIsTrue(true);

    if (updateData.isUpdate) {
      // ... (处理更新的代码)

      const costPriceObject = priceList.find((item) => item.type.key === COST_PRICE_TYPE);
      const costPrice = costPriceObject ? costPriceObject.price : 0;

      const isSalesPriceLessThanCost =
      selectedPriceType.key === SALES_PRICE_TYPE && selectedPrice < costPrice;
      const isTransferPriceLessThanCost =
      selectedPriceType.key === TRANSFER_PRICE_TYPE && selectedPrice < costPrice;
      const isWholesalePriceLessThanCost =
      selectedPriceType.key === WHOLESALE_PRICE_TYPE && selectedPrice < costPrice;

      console.log('Cost Price:', costPrice);
      console.log('Is Sales Price Less Than Cost:', isSalesPriceLessThanCost);
      console.log('Is Transfer Price Less Than Cost:', isTransferPriceLessThanCost);
      console.log('Is Wholesale Price Less Than Cost:', isWholesalePriceLessThanCost);

      if (isSalesPriceLessThanCost || isTransferPriceLessThanCost || isWholesalePriceLessThanCost) {
        // 显示警告消息
        const warningMessage = `Based on the amount for ${selectedPriceType.name} that is less than the Cost price ${costPrice}, you may encounter a loss due to this.`;
        dispatch(showMessage({ message: warningMessage, variant: 'warning' }));
      }
    } else {
      // ... (处理新记录的代码)
    }

    setIsTrue(false);
    setUpdateData({ isUpdate: false, data: {} });
    setSelectedPrice('');
    setSelectedCurrencyUnit({});
    setSelectedPriceType({});
    resetField('priceType', 'currencyId');
    reset();
  };

排查情况

我添加了以下日志代码用于定位问题,但这些日志从未在控制台输出:

console.log('Cost Price:', costPrice);
console.log('Is Sales Price Less Than Cost:', isSalesPriceLessThanCost);
console.log('Is Transfer Price Less Than Cost:', isTransferPriceLessThanCost);
console.log('Is Wholesale Price Less Than Cost:', isWholesalePriceLessThanCost);

内容的提问来源于stack exchange,提问作者Harindu Medawatta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 16:07:28