当前位置: 代码迷 >> JavaScript >> eslint + flow:道具验证中缺少“属性”(带有标识符的对象)
  详细解决方案

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

热度:77   发布时间:2023-06-03 18:18:30.0

我今天面临一个奇怪的问题,

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

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对多组件文件不满意的错误吗?

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

const { someObject } = this.props;

目前,这是一个臭虫,请报告。 可以通过破坏frontendgirl所提到的道具来补救,尽管这看起来似乎不是干净的代码,但您只需要对具有地图对象的组件(带有索引器属性的组件, { [string]: string }

  相关解决方案