无法使用“ in”运算符在Symbol(react.element)错误

时间:2019-12-02 13:03:04

标签: javascript reactjs error-handling

我正在使用解析器功能。此函数返回一个对象,其值是一条错误消息:这是代码:

const codeErrors = ({ code }) => {
  if (code === '1111') {
    return {
      'contact1': (
        <ErrorWrapper id={code} />
      )
    };
  }
return {
    'contact2': (
      <ErrorWrapper id={code} />
    )
  };

ErrorWraper组件只是具有以下代码的React组件:

const ErrorWrapperComponent = ({ id, locale, serverErrorMessages, values, defaultMessage }) => (
  id ? (
    <React.Fragment>
      {console.log(id)}
      <FormattedMessage
        id={id}
        values={values}
        defaultMessage={defaultMessage || `${CLIENT_ERROR_MESSAGES[locale].generalError} (${id})`}
      />
      {serverErrorMessages && serverErrorMessages[id] && ` (${id})`}
    </React.Fragment>
  ) : null
);

但是,当渲染错误时,出现了无数次无法在Symbol(react.element)中使用“ in”运算符搜索“ toMap”的错误。为什么会这样?

1 个答案:

答案 0 :(得分:0)

从Mozilla:

  

in运算符只能用于检查属性是否在   宾语。您无法搜索字符串,数字或其他原语   类型。

"Hello" in "Hello World"; 
// TypeError: cannot use 'in' operator to search for 'Hello' in 'Hello World'

例如,您将需要使用String.prototype.indexOf()。

"Hello World".indexOf("Hello") !== -1; 
// true