【问题标题】:Pass Children prop to React Memo component将 Children 道具传递给 React Memo 组件
【发布时间】:2019-11-15 10:20:29
【问题描述】:

我目前正在使用React.memo 优化一些 React SFC 组件。

这些组件中的大多数都有子组件。该项目还使用 TypeScript。

我开始觉得备忘录组件不支持子组件,因为每次出现错误时都会显示以下错误消息:

“IntrinsicAttributes & object”类型上不存在属性“children”

事实证明,这只适用于我为组件提供 Props 类型的情况。例如

const MyComponent: React.SFC<PropType>

如果我删除了道具类型(如下所示),则不会发生错误。

const MyComponent: React.SFC

当然,在大多数情况下我都需要道具类型。

我已经设置了一个模拟问题的代码沙箱:

https://codesandbox.io/s/cool-keldysh-urddu?fontsize=14&hidenavigation=1&theme=dark

tl;dr:为什么 React.memo 组件在为组件 props 提供了类型时不接受 child prop?

【问题讨论】:

    标签: javascript reactjs typescript memo


    【解决方案1】:

    这似乎是React.memo 类型的问题,它不会自动通过子道具。在DefiniteTyped repo 上有一个discussion

    目前,您可以手动指定 children 属性:

    type ChildProps = {
      name: string;
      children: React.ReactNode;
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-24
      • 2021-02-20
      • 2020-12-21
      • 2017-02-19
      • 2018-08-01
      • 2020-07-17
      • 2020-12-19
      • 2017-11-27
      相关资源
      最近更新 更多