期望 return 箭头函数错误末尾的值

Getting expected to return a value at the end of the arrow function error

我有这样的功能,

  const isDisplayStaticAndConditionalSwitcher = (fieldNode, window) => {
    const fieldDataSourceCode = fieldNode.getAttribute('DataSourceCode') || [];
    const nodeValues = Object.values(window?.Designer?.nodes); // get the nodes values 
     
    const formDataSourceCode = nodeValues.map((o) => {
      if (o.displayName === 'Form') { return o.props.code; } 
    }).filter((v) => v)[0];

    return fieldDataSourceCode === formDataSourceCode;
  };

我遇到了错误,expected to return a value at the end of the arrow function error我该如何解决这个问题?

您的 lint 规则希望您明确 return undefined:

nodeValues.map((o) => {
  if (o.displayName === "Form") {
    return o.props.code;
  } else {
    return undefined;
  }
});

lint 错误是因为 if 函数内的 if 条件。如果条件失败,您需要 return 相同的值或其他值。

使用 map,从 map 函数期望 return 相同长度的数组。

const formDataSourceCode = nodeValues.map((o) => {
      if (o.displayName === 'Form') { return o.props.code; }  
      // add the return in case if condition fails.
      return o;
    }).filter((v) => v)[0];

希望对您有所帮助。