如何在TypeScript(tsx)中运行React props.children

时间:2016-06-20 09:51:30

标签: reactjs typescript

现在我想在道具中循环每个孩子来做一些只有某种元素的事情

我喜欢这个

  React.Children.forEach(this.props.children, (child) => {
    if (child.type === MenuItem && child.props.url === path) {
      isActive = true
    }
  })

总是警告喜欢'类型React.ReactElement'上不存在','类型React.ReactElement上不存在道具'

但它的工作正常,但是这些警告让我感到烦恼,并且让我不确定我是否做错了。

1 个答案:

答案 0 :(得分:1)

您需要定义子类型/接口

React.Children.forEach(this.props.children, (child:MyReactComponent) => {
  if (child.type === MenuItem && child.props.url === path) {
    isActive = true
  }
})

确保你总是可以使用“任何”类型来跳过类型检查(和警告),但你应该在将“任何”类型的铸件放在任何地方之前考虑。