既然你要檢查SomeInnerComponent
存在作爲一個孩子或沒有,你可以做以下
const MyComponent = (props) => {
for (let child in props.children){
if (props.children[child].type.displayName === 'SomeInnerComponent'){
console.log("SomeInnerComponent is present as a child");
}
}
return (
<Wrapper />{props.children}</Wrapper>
);
}
或者你可以有你的組件上的propTypes驗證
MyComponent.propTypes: {
children: function (props, propName, componentName) {
var error;
var childProp = props[propName];
var flag = false;
React.Children.forEach(childProp, function (child) {
if (child.type.displayName === 'SomeInnerComponent') {
flag = true
}
});
if(flag === false) {
error = new Error(componentName + ' does not exist!'
);
}
return error;
}
},
你想檢查是否存在特定的'SomeInnerComponent'或者普通的它有一些兒童 –
特別是'SomeInnerComponent'存在。 – JoeTidee