Children γ―γprops γ§γγ children γγεγεγ£γ JSX γζδ½γε€ζγγγγγ«η¨γγΎγγ
const mappedChildren = Children.map(children, child =>
<div className="Row">
{child}
</div>
);γͺγγ‘γ¬γ³γΉ
Children.count(children)
Children.count(children) γεΌγ³εΊγγ¦γchildren γγΌγΏζ§ι ε
οΏ½?εοΏ½?ζ°γγ«γ¦γ³γγγΎγγ
import { Children } from 'react';
function RowList({ children }) {
return (
<>
<h1>Total rows: {Children.count(children)}</h1>
...
</>
);
}εΌζ°
children: γ³γ³γγΌγγ³γγ props γ¨γγ¦εγεγchildrenοΏ½?ε€γ
θΏγε€
ε½θ©² children ε
ι¨γ«γγγγΌγοΏ½?ζ°γ
注ζηΉ
- η©ΊοΏ½?γγΌγοΌ
nullγundefinedγγγγ³γγΌγͺγ’γ³ε€οΌγζεεγζ°ε€γγγγ³ React θ¦η΄ γγεγ οΏ½?γγΌγγ¨γγ¦γ«γ¦γ³γγγγΎγγι εθͺδ½γ―εε₯οΏ½?γγΌγγ¨γγ¦γ«γ¦γ³γγγγΎγγγγγοΏ½?εγ―γ«γ¦γ³γγγγΎγγReact θ¦η΄ γγζ·±γθ΅°ζ»γ―θ‘γγγΎγγγθ¦η΄ γγοΏ½?ε ΄γ§γ¬γ³γγΌγγγγγγ§γ―γͺγγγγεοΏ½?θ΅°ζ»γθ΅·γγΎγγγγγ©γ°γ‘γ³γγθ΅°ζ»γγγΎγγγ
Children.forEach(children, fn, thisArg?)
Children.forEach(children, fn, thisArg?) γεΌγ³εΊγγ¦γchildren γγΌγΏζ§ι ε
οΏ½?γγγγοΏ½?εγ«ε―Ύγγ¦δ½γγοΏ½?γ³γΌγγοΏ½?οΏ½θ‘γγγγ¨γγ§γγΎγγ
import { Children } from 'react';
function SeparatorList({ children }) {
const result = [];
Children.forEach(children, (child, index) => {
result.push(child);
result.push(<hr key={index} />);
});
// ...εΌζ°
children: γ³γ³γγΌγγ³γγ props γ¨γγ¦εγεγchildrenοΏ½?ε€γfn: γγγγοΏ½?εγ«ε―Ύγγ¦οΏ½?οΏ½θ‘γγγι’ζ°γι εοΏ½?forEachγ‘γ½γγ οΏ½?γ³γΌγ«γγγ―γ«δΌΌγ¦γγΎγγεγ第 1 εΌζ°γγοΏ½?γ€γ³γγγ―γΉγ第 2 εΌζ°γ¨γγ¦εΌγ³εΊγγγΎγγγ€γ³γγγ―γΉγ―0γγε§γΎγγεΌγ³εΊγγγ¨γ«ε’ε γγΎγγ- ηη₯ε―θ½
thisArg:fnι’ζ°γεΌγ³εΊγγγιοΏ½?thisοΏ½?ε€γηη₯γγγε ΄εγ―undefinedγ«γͺγγΎγγ
θΏγε€
Children.forEach γ― undefined γθΏγγΎγγ
注ζηΉ
- η©ΊοΏ½?γγΌγοΌ
nullγundefinedγγγγ³γγΌγͺγ’γ³ε€οΌγζεεγζ°ε€γγγγ³ React θ¦η΄ γγεγ οΏ½?εγγΌγγ¨γγ¦ζ±γγγΎγγι εθͺδ½γ―εε₯οΏ½?γγΌγγ¨γγ¦ζ±γγγΎγγγγγοΏ½?δΈθΊ«γ―εγγΌγγ¨γγ¦ζ±γγγΎγγReact θ¦η΄ γγζ·±γθ΅°ζ»γ―θ‘γγγΎγγγθ¦η΄ γγοΏ½?ε ΄γ§γ¬γ³γγΌγγγγγγ§γ―γͺγγγγεοΏ½?θ΅°ζ»γθ΅·γγΎγγγγγ©γ°γ‘γ³γγθ΅°ζ»γγγΎγγγ
Children.map(children, fn, thisArg?)
Children.map(children, fn, thisArg?) γεΌγ³εΊγγ¦γchildren γγΌγΏζ§ι ε
οΏ½?γγγγοΏ½?εγγγγοΌε€ζοΌγγΎγγ
import { Children } from 'react';
function RowList({ children }) {
return (
<div className="RowList">
{Children.map(children, child =>
<div className="Row">
{child}
</div>
)}
</div>
);
}εΌζ°
children: γ³γ³γγΌγγ³γγ props γ¨γγ¦εγεγchildrenοΏ½?ε€γfnοΌι εοΏ½?mapγ‘γ½γγ οΏ½?γ³γΌγ«γγγ―γ«δΌΌγγγγγ³γ°ι’ζ°γεγ第 1 εΌζ°γγοΏ½?γ€γ³γγγ―γΉγ第 2 εΌζ°γ¨γγ¦εΌγ³εΊγγγΎγγγ€γ³γγγ―γΉγ―0γγε§γΎγγεΌγ³εΊγγγ¨γ«ε’ε γγΎγγγοΏ½?ι’ζ°γγγ― React γγΌγγθΏγεΏ θ¦γγγγΎγγγ€γΎγη©ΊοΏ½?γγΌγοΌnullγundefinedγγΎγγ―γγΌγͺγ’γ³ε€οΌγζεεγζ°ε€γReact θ¦η΄ γγΎγγ―δ»οΏ½? React γγΌγοΏ½?ι εγ§γγ- ηη₯ε―θ½
thisArg:fnι’ζ°γεΌγ³εΊγγγιοΏ½?thisοΏ½?ε€γηη₯γγγε ΄εγ―undefinedγ«γͺγγΎγγ
θΏγε€
children γ null γΎγγ― undefined οΏ½?ε ΄εγεγε€γθΏγγΎγγ
γγδ»₯ε€οΏ½?ε ΄εγfn ι’ζ°γγθΏγγγγγΌγγ§ζ§ζγγγγγ©γγγͺι
εγθΏγγΎγγθΏγγγι
εγ«γ― null γ¨ undefined γι€γγγΉγ¦οΏ½?γγΌγγε«γΎγγΎγγ
注ζηΉ
-
η©ΊοΏ½?γγΌγοΌ
nullγundefinedγγγγ³γγΌγͺγ’γ³ε€οΌγζεεγζ°ε€γγγγ³ React θ¦η΄ γγεγ οΏ½?εγγΌγγ¨γγ¦ζ±γγγΎγγι εθͺδ½γ―εε₯οΏ½?γγΌγγ¨γγ¦ζ±γγγΎγγγγγοΏ½?δΈθΊ«γ―εγγΌγγ¨γγ¦ζ±γγγΎγγReact θ¦η΄ γγζ·±γθ΅°ζ»γ―θ‘γγγΎγγγθ¦η΄ γγοΏ½?ε ΄γ§γ¬γ³γγΌγγγγγγ§γ―γͺγγγγεοΏ½?θ΅°ζ»γθ΅·γγΎγγγγγ©γ°γ‘γ³γγθ΅°ζ»γγγΎγγγ -
fnγγ key δ»γγ§θ¦η΄ γͺγγθ¦η΄ οΏ½?ι εγθΏγε ΄εγθΏγγγθ¦η΄ οΏ½? key γ―γchildrenοΏ½?ε―ΎεΏγγε οΏ½?ι οΏ½?οΏ½?γγΌγ¨θͺεηγ«η΅εγγγΎγγfnγγθ€ζ°οΏ½?θ¦η΄ γι εγ§θΏγε ΄εγγγγοΏ½? key γ―γοΏ½?ε ι¨γ§γγΌγ«γ«γ«δΈζγ§γγγ°εεγ§γγ
Children.only(children)
Children.only(children)γεΌγ³εΊγγγ¨γ§ children γεδΈοΏ½? React θ¦η΄ γ葨γγ¦γγγγ¨γη’ΊθͺγγΎγγ
function Box({ children }) {
const element = Children.only(children);
// ...εΌζ°
children: γ³γ³γγΌγγ³γγ props γ¨γγ¦εγεγchildrenοΏ½?ε€γ
θΏγε€
children γζεΉγͺθ¦η΄ γ§γγε ΄εγγοΏ½?θ¦η΄ γθΏγγΎγγ
γγδ»₯ε€οΏ½?ε ΄εγγ¨γ©γΌγγΉγγΌγγΎγγ
注ζηΉ
- γοΏ½?γ‘γ½γγγ―γ
childrenγ«ι εοΌChildren.mapοΏ½?θΏγε€γͺγ©οΌγζΈ‘γγ¨εΈΈγ«γ¨γ©γΌγγΉγγΌγγΎγγγ€γΎγγchildrenγεδΈθ¦η΄ οΏ½?ι εγͺγ©γ§γ―γͺγγεδΈοΏ½? React θ¦η΄ γοΏ½?γοΏ½?γ§γγγγ¨γεΌ·εΆγγΎγγ
Children.toArray(children)
Children.toArray(children) γεΌγ³εΊγγ¦γchildren γγΌγΏζ§ι γγι
εγδ½ζγγΎγγ
import { Children } from 'react';
export default function ReversedList({ children }) {
const result = Children.toArray(children);
result.reverse();
// ...εΌζ°
children: γ³γ³γγΌγγ³γγ props γ¨γγ¦εγεγchildrenοΏ½?ε€γ
θΏγε€
children ε
οΏ½?ε
οΏ½?οΏ½οΏ½?γγ©γγγͺι
εγθΏγγΎγγ
注ζηΉ
- η©ΊγγΌγοΌ
nullγundefinedγγγγ³γγΌγͺγ’γ³ε€οΌγ―θΏγγγι εγγγ―ηγγγΎγγθΏγγγθ¦η΄ οΏ½? key γ―γε οΏ½?θ¦η΄ οΏ½? key γ¨γγοΏ½?γγΉγγ¬γγ«γδ½οΏ½?γγθ¨οΏ½?οΏ½γγγΎγγγγγ«γγγι εοΏ½?γγ©γγεγ«γγζεγε€εγγͺγγγ¨γδΏθ¨ΌγγγΎγγ
δ½Ώη¨ζ³
εοΏ½?ε€ζ
γ³γ³γγΌγγ³γγ children γγγγγ£γ¨γγ¦εγεγ£γεοΏ½? JSX γε€ζγγγγγ«γChildren.map γεΌγ³εΊγγΎγγ
import { Children } from 'react';
function RowList({ children }) {
return (
<div className="RowList">
{Children.map(children, child =>
<div className="Row">
{child}
</div>
)}
</div>
);
}δΈθ¨οΏ½?δΎγ§γ―γRowList γ―εγεγ£γγγΉγ¦οΏ½?εγ <div className="Row"> γ¨γγγ³γ³γγγ«γ©γγγγΎγγδΎγγ°γθ¦ͺγ³γ³γγΌγγ³γγ 3 γ€οΏ½? <p> γΏγ°γ props η΅η±γ§ children γ¨γγ¦ RowList γ«ζΈ‘γγ¨γγΎγγγγ
<RowList>
<p>This is the first item.</p>
<p>This is the second item.</p>
<p>This is the third item.</p>
</RowList>δΈθ¨οΏ½? RowList οΏ½?οΏ½?οΏ½θ£
γ«γγγζη΅ηγ«γ¬γ³γγΌγγγη΅ζγ―欑�?γγγ«γͺγγΎγγ
<div className="RowList">
<div className="Row">
<p>This is the first item.</p>
</div>
<div className="Row">
<p>This is the second item.</p>
</div>
<div className="Row">
<p>This is the third item.</p>
</div>
</div>Children.map γ― map() γδ½Ώγ£γ¦ι
εγε€ζγγ οΏ½?γ¨δΌΌγ¦γγΎγγιγγ―γchildren οΏ½?γγΌγΏζ§ι γιε
¬ι (opaque) οΏ½?γοΏ½?γ¨θ¦γͺγγΉγγ§γγγγ¨γ§γγγγγ―γchildren γοΏ½?οΏ½ιγ«ι
εγ§γγε ΄εγγγγ¨γγ¦γγγγγι
εγγγγ―δ»οΏ½?ηΉοΏ½?οΏ½οΏ½?γγΌγΏεγ§γγγ¨οΏ½?οΏ½?οΏ½γγ¦γ―γͺγγͺγγ¨γγζε³γ§γγγγγγεοΏ½?ε€ζγεΏ
θ¦γͺε ΄εγ«γ― Children.map γδ½Ώη¨γγΉγηη±γ§γγ
import { Children } from 'react'; export default function RowList({ children }) { return ( <div className="RowList"> {Children.map(children, child => <div className="Row"> {child} </div> )} </div> ); }
γγγ«ζ·±γη₯γ
React γ§γ― props γ¨γγ¦οΏ½? children γ―ιε
¬ιοΏ½?γγΌγΏζ§ι γ γ¨θ¦γͺγγγΎγγγ€γΎγγοΏ½?ε
·δ½ηγͺζ§ι γ«δΎεγγ¦γ―γγγͺγγ¨γγζε³γ§γγεγε€ζγγγγγγ£γ«γΏγͺγ³γ°γγγγζ°γγγγγγγγ«γ―γChildren οΏ½?γ‘γ½γγγδ½Ώη¨γγΉγγ§γγ
οΏ½?οΏ½ιγ«γ―γchildren γγΌγΏζ§ι γ―ε
ι¨ηγ«γ―γγ°γγ°ι
εγ¨γγ¦θ‘¨ηΎγγγΎγγγγγγεγ 1 γ€γ γοΏ½?ε ΄εγReact γ―δΈεΏ
θ¦γͺγ‘γ’γͺγͺγΌγγΌγγγγιΏγγγγγδ½εγͺι
εγδ½ζγγΎγγγchildren οΏ½?δΈθΊ«γη΄ζ₯θ¦γοΏ½?γ§γ―γͺγγChildren οΏ½?γ‘γ½γγγδ½Ώη¨γγιγγReact γγγΌγΏζ§ι οΏ½?οΏ½?οΏ½θ£
ζΉζ³γε€ζ΄γγ¦γγγͺγοΏ½?γ³γΌγγ―ε£γγγ«ζΈγΏγΎγγ
children γι
εγ§γγε ΄εγ§γγChildren.map γ«γ―δΎΏε©γͺηΉε₯γͺζ―γθγγγγγΎγγδΎγγ°γChildren.map γ―γθΏγγγθ¦η΄ οΏ½? key γ¨γζΈ‘γγγ children γ«γγ key γη΅γΏεγγγΎγγγγγ«γγγδΈθ¨οΏ½?δΎοΏ½?γγγ«γ©γγγγγ¦γε
οΏ½?ε JSX γγγΌγγε€±γγγγ¨γ―γγγΎγγγ
εοΏ½?γγγγγ«ε―Ύγγ¦γ³γΌγγοΏ½?οΏ½θ‘γγ
Children.forEach γεΌγ³εΊγγγ¨γ§γchildren γγΌγΏζ§ι οΏ½?εοΏ½?γγγγγ«ε―Ύγγ¦εεΎ©ε¦ηγθ‘γγΎγγγγγ―ε€γθΏγγͺγγι
εοΏ½? forEach γ‘γ½γγγ«δΌΌγγοΏ½?γ§γγη¬θͺοΏ½?ι
εγζ§η―γγγͺγ©οΏ½?γ«γΉγΏγ γγΈγγ―γοΏ½?οΏ½θ‘γγγγγ«δ½Ώη¨γ§γγΎγγ
import { Children } from 'react'; export default function SeparatorList({ children }) { const result = []; Children.forEach(children, (child, index) => { result.push(child); result.push(<hr key={index} />); }); result.pop(); // Remove the last separator return result; }
εοΏ½?ζ°γζ°γγ
Children.count(children) γεΌγ³εΊγγ¦γεοΏ½?ζ°γθ¨οΏ½?οΏ½γγΎγγ
import { Children } from 'react'; export default function RowList({ children }) { return ( <div className="RowList"> <h1 className="RowListHeader"> Total rows: {Children.count(children)} </h1> {Children.map(children, child => <div className="Row"> {child} </div> )} </div> ); }
εγι εγ«ε€ζγγ
Children.toArray(children) γεΌγ³εΊγγ¦γchildren γγΌγΏζ§ι γιεΈΈοΏ½? JavaScript ι
εγ«ε€ζγγΎγγγγγ«γγγfilterγsortγreverse γͺγ©οΏ½?η΅γΏθΎΌγΏι
εγ‘γ½γγγδ½Ώγ£γ¦ι
εγζδ½γ§γγΎγγ
import { Children } from 'react'; export default function ReversedList({ children }) { const result = Children.toArray(children); result.reverse(); return result; }
代ζΏζοΏ½?οΏ½
θ€ζ°οΏ½?γ³γ³γγΌγγ³γγε ¬ιγγ
Children οΏ½?γ‘γ½γγγδ½Ώγ£γ¦ children γζδ½γγγγ¨γ§γγγ°γγ°γ³γΌγγε£γγγγγͺγγΎγγJSX γ§γ³γ³γγΌγγ³γγ« children γζΈ‘γε ΄εγιεΈΈγ―γ³γ³γγΌγγ³γγ«γγεγ
οΏ½?εγζδ½γγγγε€ζγγγγγγγγ¨γδΊζ³γγ¦γγͺγγ§γγγγ
γ§γγιγ Children γ‘γ½γγοΏ½?δ½Ώη¨γ―ιΏγγ¦γγ γγγδΎγγ°γRowList οΏ½?γγΉγ¦οΏ½?εγ <div className="Row"> γ§γ©γγγγγε ΄εγRow γ³γ³γγΌγγ³γγγ¨γ―γΉγγΌγγγγοΏ½?γγγ«εθ‘γζεγ§γ©γγγγΎγγ
import { RowList, Row } from './RowList.js'; export default function App() { return ( <RowList> <Row> <p>This is the first item.</p> </Row> <Row> <p>This is the second item.</p> </Row> <Row> <p>This is the third item.</p> </Row> </RowList> ); }
Children.map γδ½Ώη¨γγε ΄εγ¨γ―η°γͺγγγοΏ½?γ’γγγΌγγ§γ―γγΉγ¦οΏ½?εγθͺεηγ«γ©γγγγ¦γγγΎγγγγγγε
γ»γ©οΏ½? Children.map γδ½Ώη¨γγδΎγ¨ζ―θΌγγ¦γγγοΏ½?γ’γγγΌγγ«γ―γγγγ«ε€γοΏ½?γ³γ³γγΌγγ³γγζ½εΊγγ¦γζ©θ½γγγ¨γγε©ηΉγγγγΎγγδΎγγ°γθͺεοΏ½? MoreRows γ³γ³γγΌγγ³γγζ½εΊγγ¦γζ©θ½γγΎγγ
import { RowList, Row } from './RowList.js'; export default function App() { return ( <RowList> <Row> <p>This is the first item.</p> </Row> <MoreRows /> </RowList> ); } function MoreRows() { return ( <> <Row> <p>This is the second item.</p> </Row> <Row> <p>This is the third item.</p> </Row> </> ); }
γγγ― Children.map γ§γ―ζ©θ½γγΎγγγγͺγγͺγγ<MoreRows /> γεδΈοΏ½?εοΌγ€γΎγεδΈοΏ½?θ‘οΌοΏ½?γγγ«γθ¦γγγγγγ§γγ
ι εγ props γ¨γγ¦εγε ₯γγ
ζη€Ίηγ«ι
εγ props γ¨γγ¦ζΈ‘γγγ¨γγ§γγΎγγδΎγγ°γδ»₯δΈοΏ½? RowList γ― rows γ¨γγι
εγ props γ¨γγ¦εγεγγΎγγ
import { RowList, Row } from './RowList.js'; export default function App() { return ( <RowList rows={[ { id: 'first', content: <p>This is the first item.</p> }, { id: 'second', content: <p>This is the second item.</p> }, { id: 'third', content: <p>This is the third item.</p> } ]} /> ); }
rows γ―ιεΈΈοΏ½? JavaScript οΏ½?ι
εγͺοΏ½?γ§γRowList γ³γ³γγΌγγ³γγ― map οΏ½?γγγͺη΅γΏθΎΌγΏοΏ½?ι
εγ‘γ½γγγδ½Ώη¨γ§γγΎγγ
γοΏ½?γγΏγΌγ³γ―ηΉγ«γεγ¨δΈη·γ«ζ§ι εγγΌγΏγ¨γγ¦γγε€γοΏ½?ζ
ε ±γζΈ‘γγγε ΄εγ«ζη¨γ§γγδ»₯δΈοΏ½?δΎγ§γ―γTabSwitcher γ³γ³γγΌγγ³γγ― props γ§γγ tabs η΅η±γ§γͺγγΈγ§γ―γοΏ½?ι
εγεγεγγΎγγ
import TabSwitcher from './TabSwitcher.js'; export default function App() { return ( <TabSwitcher tabs={[ { id: 'first', header: 'First', content: <p>This is the first item.</p> }, { id: 'second', header: 'Second', content: <p>This is the second item.</p> }, { id: 'third', header: 'Third', content: <p>This is the third item.</p> } ]} /> ); }
JSX γ¨γγ¦εγζΈ‘γοΏ½?γ¨γ―η°γͺγγγοΏ½?γ’γγγΌγγ§γ― header οΏ½?γγγͺθΏ½ε οΏ½?γγΌγΏγεγ’γ€γγ γ«ι’ι£δ»γγγγ¨γγ§γγΎγγtabs γη΄ζ₯ζδ½γγ¦γγγγγγ―ι
εγͺοΏ½?γ§γChildren γ‘γ½γγγ―εΏ
θ¦γγγΎγγγ
γ¬γ³γγΌγγγγγεΌγ³εΊγγ¦γ¬γ³γγΌγγ«γΉγΏγγ€γΊγγ
γγΉγ¦οΏ½?γ’γ€γγ γ«ε―Ύγγ¦ JSX γηζγγ¦γγ代γγγ«γJSX γθΏγι’ζ°γζΈ‘γγεΏ
θ¦γͺγ¨γγ«γοΏ½?ι’ζ°γεΌγ³εΊγγ¦γγγγγ¨γγ§γγΎγγδ»₯δΈοΏ½?δΎγ§γ―γApp γ³γ³γγΌγγ³γγ― renderContent γ¨γγι’ζ°γ TabSwitcher γ³γ³γγΌγγ³γγ«ζΈ‘γγ¦γγΎγγTabSwitcher γ³γ³γγΌγγ³γγ―ιΈζδΈοΏ½?γΏγοΏ½?γΏγ«ε―Ύγγ¦ renderContent γεΌγ³εΊγγΎγγ
import TabSwitcher from './TabSwitcher.js'; export default function App() { return ( <TabSwitcher tabIds={['first', 'second', 'third']} getHeader={tabId => { return tabId[0].toUpperCase() + tabId.slice(1); }} renderContent={tabId => { return <p>This is the {tabId} item.</p>; }} /> ); }
renderContent οΏ½?γγγͺ props γ―γγ¦γΌγΆγ€γ³γΏγΌγγ§γΌγΉοΏ½?δΈι¨γγ©οΏ½?γγγ«γ¬γ³γγΌγγγγζοΏ½?οΏ½γγ props γ§γγγγγγ¬γ³γγΌγγγγ (render prop) γ¨εΌγ°γγΎγγγγγγγγγ«γ€γγ¦ηΉε₯γͺγγ¨γ―δ½γγγγΎγγγγγΎγγγΎι’ζ°εγ§γγγ¨γγγ γοΏ½?ιεΈΈοΏ½? props γ«ιγγΎγγγ
γ¬γ³γγΌγγγγγ―ι’ζ°γͺοΏ½?γ§γζ
ε ±γζΈ‘γγγ¨γγ§γγΎγγδΎγγ°γδ»₯δΈοΏ½? RowList γ³γ³γγΌγγ³γγ―γεθ‘οΏ½? id γ¨ index γ renderRow γ¨γγγ¬γ³γγΌγγγγγ«ζΈ‘γγindex γδ½Ώγ£γ¦εΆζ°θ‘γγγ€γ©γ€γγγΎγγ
import { RowList, Row } from './RowList.js'; export default function App() { return ( <RowList rowIds={['first', 'second', 'third']} renderRow={(id, index) => { return ( <Row isHighlighted={index % 2 === 0}> <p>This is the {id} item.</p> </Row> ); }} /> ); }
γοΏ½?γγγͺζΉζ³γ§γγθ¦ͺγ³γ³γγΌγγ³γγ¨εγ³γ³γγΌγγ³γγγεοΏ½?ζδ½γθ‘γγγ«εθͺΏεδ½γ§γγγ¨γγγγ¨γ§γγ
γγ©γγ«γ·γ₯γΌγγ£γ³γ°
γ«γΉγΏγ γ³γ³γγΌγγ³γγζΈ‘γγ¦γγγγChildren γ‘γ½γγγγοΏ½?γ¬γ³γγΌη΅ζγ葨瀺γγͺγ
RowList γ«δ»₯δΈοΏ½?γγγ« 2 γ€οΏ½?εγζΈ‘γγ¨γγΎγγ
<RowList>
<p>First item</p>
<MoreRows />
</RowList>RowList οΏ½?δΈγ§ Children.count(children) γθ‘γγ¨γη΅ζγ― 2 γ«γͺγγΎγγMoreRows γ 10 οΏ½?η°γͺγγ’γ€γγ γγ¬γ³γγΌγγε ΄εγ§γγnull γθΏγε ΄εγ§γγChildren.count(children) γ―γγ―γ 2 γ«γͺγγΎγγRowList οΏ½?θ¦ηΉγγγ―εγεγ£γ JSX οΏ½?γΏγγθ¦γγ¦γγγγγγ§γγMoreRows γ³γ³γγΌγγ³γοΏ½?δΈθΊ«γ―γθ¦γγ¦γγγΎγγγ
γοΏ½?εΆιγ―γ³γ³γγΌγγ³γοΏ½?ζ½εΊγε°ι£γ«γγΎγγγγγ Children γδ½Ώη¨γγοΏ½?γ§γ―γͺγγ代ζΏζοΏ½?οΏ½γδ½Ώη¨γγΉγηη±γ§γγ