Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs defaultProps正在抑制不正确的流错误消息_Reactjs_Flowtype - Fatal编程技术网

Reactjs defaultProps正在抑制不正确的流错误消息

Reactjs defaultProps正在抑制不正确的流错误消息,reactjs,flowtype,Reactjs,Flowtype,我有这样一个组件: // @flow import React from 'react'; type Props = { level: number, className: string, children: any, rest: any }; export const Heading = ({ level = 1, className, children, ...rest }: Props): React$Element<any> => {

我有这样一个组件:

// @flow
import React from 'react';

type Props = {
  level: number,
  className: string,
  children: any,
  rest: any
};

export const Heading = ({
  level = 1,
  className,
  children,
  ...rest
}: Props): React$Element<any> => {
  const Tag = `h${level}`;

  return (
    <Tag className={className} {...rest}>
      {children}
    </Tag>
  );
};

Heading.displayName = 'Heading';
我得到:

17:const Tag=
h${level}

^^^^^ undefined. This type cannot be coerced to const Tag =
`h${level}`; ^^^^^^^^^^^ string
这不是我所期望的情况。

年,有人在向模板字符串传递
布尔值时遇到了类似的错误。答案如下:

Flow试图帮助捕获意外的字符串强制转换,因此您只需要在这里用
string(true)
来包装bool,以传达强制转换的明确意图

流对
null
boolean
undefined
显示相同的行为。如果您将其中一个传递给模板字符串,它将对您大喊大叫

建议的解决方案是显式地将
level
强制转换为字符串,如果它是故意

const标记=`h${String(level)}`;
…或者(更好)定义一个默认的道具,它在这个上下文中完全有意义,因为如果flow没有在这里抱怨,您将尝试呈现一个肯定不是您想要的
元素。因此,这并不是一个真正错误的消息。

在中,有人在向模板字符串传递
布尔值时遇到了类似的错误。答案如下:

Flow试图帮助捕获意外的字符串强制转换,因此您只需要在这里用
string(true)
来包装bool,以传达强制转换的明确意图

流对
null
boolean
undefined
显示相同的行为。如果您将其中一个传递给模板字符串,它将对您大喊大叫

建议的解决方案是显式地将
level
强制转换为字符串,如果它是故意

const标记=`h${String(level)}`;

…或者(更好)定义一个默认的道具,它在这个上下文中完全有意义,因为如果flow没有在这里抱怨,您将尝试呈现一个肯定不是您想要的
元素。因此,这并不是一条错误消息。

该错误消息中的标记有问题。我猜这是一个复制粘贴错误?你检查过我的答案了吗?错误消息中的标记有问题。我猜这是复制粘贴错误?你检查过我的答案了吗?
export const Heading = ({
  level,
^^^^^ undefined. This type cannot be coerced to const Tag =
`h${level}`; ^^^^^^^^^^^ string