[英]Get children of React.Fragment
我在我的組件中返回React.Fragment
:
render() {
return (
<Fragment>
<MyFirstElement/>
<MySecondElement/>
</Fragment>
現在我想處理父組件中的所有子組件。 我可以通過this.props.children
獲取 Fragment 組件本身。
我的問題
但是我怎樣才能得到Fragment
組件的孩子,以便我也可以處理Fragment
的孩子?
如果要“編輯”傳遞給組件的子組件,最好的選擇是創建一個自定義組件,您可以在其中完全控制子組件。
由於組件僅返回其子組件,因此它的行為類似於Fragment
小例子來證明這一點”
<Parent />
返回一個帶有 2 個<Child />
組件的<CustomFragment>
<Child />
組件需要一個testProp
值,但<Parent />
沒有提供它<CustomFragment>
中,我們通過我們的孩子map()
,添加<Child />
期望的testProp
class Parent extends React.Component { render() { return ( <CustomFragment> <Child /> <Child /> </CustomFragment> ); } } class Child extends React.Component { render() { return <p>{`Deep #${this.props.testProp}`}</p> } } class CustomFragment extends React.Component { render() { // Render children return this.props.children.map((child) => { // Change child if needed // For example, lets add a testProp child.props['testProp'] = Math.floor(Math.random() * 10) + 1 // Return return child; }); } } ReactDOM.render(<Parent />, document.body);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.