eslint + flow:道具验证中缺少“属性”(带有标识符的对象)

时间:2019-02-13 13:31:29

标签: javascript reactjs eslint flowtype

我今天遇到一个奇怪的问题,

我有一个用流输入的React组件(也就是SEO的流类型),由于某种原因,它在此处显示输入错误,这是简化的代码。

type Props = {
  someObject: { [string]: string },
};

class ComponentOne extends React.Component<Props> {
  render() {
    return (
      // No idea why there's a linting error, seems like a bug

      <div className={this.props.someObject.someKey} />
    );
  }
}

const WithEnhancements = enhance(magic)(ComponentOne);

export default () => (
  <RenderPropComponent>
    {({ someProp }) => {
      return <WithEnhancements someProp={someProp} />;
    }}
  </RenderPropComponent>
);

错误为'someObject.someKey' is missing in props validation。 我快要撞墙了,不知道可能是什么原因,对于其他组件中使用的相同数据结构进行相同类型的输入绝对可以,因为eslint的错误可能导致多组件不满意文件?

更新:似乎是一个eslint错误,由于某种原因,当像这样分解道具然后使用someObject.someKey时,它可以工作:

const { someObject } = this.props;

1 个答案:

答案 0 :(得分:1)

here报告说,这是目前的错误。可以通过破坏frontendgirl提到的props来补救,尽管这看起来似乎不是干净的代码,但是您只需要对拥有map对象的组件(带有索引器属性{{1} }。