【问题标题】:Exception for null fetched data React获取空数据的异常反应
【发布时间】:2021-11-01 16:51:13
【问题描述】:

我在 React 中像这样映射获取的数据。 我正在将名称、列和行打印到段落中,所以只要它为空,它就只打印 null null null,但如果warehouse_name 为 null,我需要将所有值传输到某个字符串,例如“未定义”,而不是这些树 null。

使用一些字符串方法代替这个可能会有更好的解决方案?

  const transformedData = data.order_items.map((invoiceData) => {
    return {
      alternative_warehouse_position: invoiceData.alternative_warehouse_position,
      warehouse_column: invoiceData.warehouse_column,
      warehouse_name: invoiceData.warehouse_name,
      warehouse_row: invoiceData.warehouse_row,
    };

【问题讨论】:

    标签: javascript reactjs fetch


    【解决方案1】:

    三种方法:

    • 使用“?”检查它是否为空。示例:${Condition} ? ${is true} : ${is false}

    • 使用新的空值检查语法。示例:${Value} ?? ${the replacement if its null}

    • 使用 OR 运算符,增强了向后的功能。示例:${first condition} || ${Second to replace if the first is false}

    注意: Null 算作 false

    【讨论】:

    • 谢谢,这真的帮助了我,甚至不是这个问题,而是未来!
    【解决方案2】:

    你可以使用the nullish coalescing operator ??

    const FALLBACK_STRING = "(not set)";
    return {
      alternative_warehouse_position: invoiceData.alternative_warehouse_position ?? FALLBACK_STRING,
      warehouse_column: invoiceData.warehouse_column ?? FALLBACK_STRING,
      warehouse_name: invoiceData.warehouse_name ?? FALLBACK_STRING,
      warehouse_row: invoiceData.warehouse_row ?? FALLBACK_STRING,
    };
    

    【讨论】:

    • 谢谢你!那是我什至不知道的事情。但是效果很好
    【解决方案3】:

    如果我理解正确,如果 invoiceData.warehouse_name 为空,您想用一个字符串替换所有三个值。为此,您可以使用三元运算符 (?:)。

    const transformedData = data.order_items.map(
      invoiceData => !!invoiceData.warehouse_name ?
        {
          alternative_warehouse_position: invoiceData.alternative_warehouse_position,
          warehouse_column: invoiceData.warehouse_column,
          warehouse_name: invoiceData.warehouse_name,
          warehouse_row: invoiceData.warehouse_row
        } :
        "No data"
    );
    

    【讨论】:

      【解决方案4】:

      如果您想要返回“未定义”字符串而不是 null,那么您可以尝试以下代码:

      const transformedData = data.order_items.map((invoiceData) => {
          return {
            alternative_warehouse_position: invoiceData.alternative_warehouse_position || "Undefined",
            warehouse_column: invoiceData.warehouse_column || "Undefined",
            warehouse_name: invoiceData.warehouse_name || "Undefined",
            warehouse_row: invoiceData.warehouse_row || "Undefined",
          }});
      

      如果这不是您的意思,您能否进一步详细说明,尤其是关于“...但如果warehouse_name 为空,我需要将所有值传输到某个字符串,例如“未定义”,而不是这些树为空。”问题陈述的一部分?

      【讨论】:

      • 我将它打印到像仓库名称 + 仓库列 + 仓库行这样的段落。所以当所有值都为空时,段落中为空+空+空。而不是这个,我只想打印一个单词“未定义”。我在另一个答案中找到了灵感,但感谢您尝试帮助我!
      猜你喜欢
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 2021-05-04
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      相关资源
      最近更新 更多