Как использовать React.Дети.карта с реактом.клонеэлемент с [email protected]



Если я ввожу дочерние элементы родительского компонента как Node, то это говорит о том, что children является неправильным типом для передачи в React.Children.map. Однако, если я введу его как ChildrenArray<any>, то он говорит, что тип, который я передаю React.cloneElement, неверен.



Сценарий 1:



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>


Сценарий 2:



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>
550   1  

1 ответ:

Проблема с первым примером заключается в использовании React.ChildrenArray<any>. На самом деле это не тот случай, когда что-то может быть использовано там, так как они должны быть элементами, которые реагируют могут понимать как узлы. Если я изменю это на React.ChildrenArray<*> на , пусть React выведет разрешенный Тип , это, кажется, работает нормально.

Comments

    Ничего не найдено.