gpt4 book ai didi

reactjs - React - 如何确定特定的子组件是否存在?

转载 作者:行者123 更新时间:2023-12-03 14:04:16 25 4
gpt4 key购买 nike

如果我有这个结构:

const MyComponent = (props) => {
return (
<Wrapper />{props.children}</Wrapper>
);
}

我这样使用它:

<MyComponent>
<SomeInnerComponent />
</MyComponent>

如何检查是否 <SomeInnerComponent />已明确包含在 <MyComponent></MyComponent> 之间,来自MyComponent内功能?

最佳答案

鉴于您想要检查 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;
}
},

关于reactjs - React - 如何确定特定的子组件是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45209760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com