2016-11-08 3 views
2

デザインの観点からは、なぜthis.props.childrenがデフォルトで配列でないのか分かりません。それは、時には単一の子供や時には配列であることを考慮する必要があるときには、作業することをより困難にします。`this.props.children`は子が1つしかないときに配列でないのはなぜですか?

React.Childrenメソッドを使用すると、コンポーネントの子を同じように操作できますが、this.props.childrenを常に配列にするほうが簡単なように思えます。このgithub issue

答えて

2

このpostは、あなたの質問に答える:

それは時々、単一の子だと、時々、配列だけでPERFの最適化であるという事実。意味的にはそれらは同等であり、 の場合は、配列内の単一の子を簡単にラップすることができます。

実際の問題は、ネストされたフラグメントと関係しています。

var a = <Foo />; 
var b = <Foo />; 
var earlierDefinedSet = { a, b }; 
<Foo> 
    <Prefix /> 
    {this.props.dataList} 
    <Infix /> 
    {this.props.children} 
    <Suffix /> 
    {earlierDefinedSet} 
</Foo> 

我々は、便利なコンポーネントの セットを付加し、連結することができるようにする機能が欲しいです。キーコンテキストを失うため、これらの配列の1つを配列 にフラット化することはできません。キーは唯一 は、彼らが最初にで を渡されたセットで一意であることが保証することができます。未連結セットに...

私はあなたのポスト/スレッドの残りの部分をチェックアウトをお勧めします。

+0

あなたの答えとリンクされたスレッドの両方が多くの洞察を与えます。私は、React開発者が正当な理由なしにそのような決定をしないことを知っていました。 – eddyjs

関連する問題