Как использовать React.Дети.карта с реактом.клонеэлемент с [email protected]
Если я ввожу дочерние элементы родительского компонента как Node, то это говорит о том, что children является неправильным типом для передачи в React.Children.map. Однако, если я введу его как ChildrenArray<any>, то он говорит, что тип, который я передаю React.cloneElement, неверен.
import * as React from 'react';
type Props = {
children?: React.ChildrenArray<any>,
};
class Test extends React.Component<Props> {
props: Props;
render() {
return React.Children.map(this.props.children, child =>
React.cloneElement(child, {})
);
}
}
<Test>
<span>foo</span>
<span>bar</span>
</Test>
import * as React from 'react';
type Props = {
children?: Node,
};
class Test extends React.Component<Props> {
props: Props;
render() {
return React.Children.map(this.props.children, child =>
React.cloneElement(child, {})
);
}
}
<Test>
<span>foo</span>
<span>bar</span>
</Test>
1 ответ:
Проблема с первым примером заключается в использовании
React.ChildrenArray<any>. На самом деле это не тот случай, когда что-то может быть использовано там, так как они должны быть элементами, которые реагируют могут понимать как узлы. Если я изменю это наReact.ChildrenArray<*>на , пусть React выведет разрешенный Тип , это, кажется, работает нормально.
Comments