2016-06-20 2 views
0

Теперь я хочу, чтобы петля каждых дети в реквизите, чтобы сделать что-то только с каким-то элементамиКак литье Реагировать props.children в машинописном (TSX)

я как этого

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

Это всегда предупреждать, что тип сим не существует на типе React.ReactElement ',' реквизита не существует в типе React.ReactElement '

Но все работает нормально, но это предупреждение раздражает меня, и не заставляйте меня не уверен, что я это сделал неправильно или нет.

ответ

0

вам нужно определить тип ребенка/интерфейс

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

уверен, у всегда можно использовать «любой» типа для пропуска проверки типов (и предупреждения), но и должны думать, прежде чем положить «любые» отливки типа везде.

Смежные вопросы