2016-02-08 48 views
0

我正在寫的成分,我wan't道具中的一個永久被阿spesific部件指定道具是特定組件在陣營

class Component extends React.Component { 
    static propTypes: { 
     children: /*Only ChildComponents allowed*/ 
    } 
} 

class ChildComponent extends React.Component {} 
<Component><div /></Component> // Should fail 
<Component><div /><ChildComponent></Component> // Should fail 
<Component><ChildComponent /></Component> // Should Succedd 
<Component><ChildComponent /><ChildComponent /></Component> // Should Succedd 

回答

0
children: React.PropTypes.instanceOf(ChildComponent) 

的實例看這裏 - https://facebook.github.io/react/docs/reusable-components.html

更新 由於這種順序是在你的情況下工作,試試這個另一種方法 -

在propTypes,允許任何節點 -

children: React.PropTypes.node 

然後在render方法 -

React.Children.map(children, (child, index) => { 
    if (!React.isValidElement(child) 
     || !child.type 
     || child.type.displayName !== 'ChildComponent'){ 
    // Exterminate! Exterminate! 
    } 
} 
+0

這不起作用。 PropType.instanceOf使用'instanceof'運算符,'instanceof Component'爲'false' – sigsve