[英]react nesting 3 components opening and closing tag where when the element inside the tag isnt rendered
我在這里發現了一個類似的問題: React component Closed tag但我仍然很困惑......
為什么當我這樣做時它不起作用? innertherinner 不會被渲染。
function Outer(props) {
return (
<Inner>
<InnerTheInner />
</Inner>
)
}
function Inner(props) {
return (
<>
</>
)
}
function InnerTheInner() {
return (
<>
innertheinner
</>
)
}
ReactDOM.render(
<React.StrictMode>
<Outer user='nishi' avatar='avatar photo' />
</React.StrictMode>,
document.getElementById('root')
);
是不是等同於這個:
<Outer>
<Inner>
<InnerTheInner>
InnerTheInner
</InnerTheInner>
</Inner>
</Outer>
你需要
function Inner(props) {
return <>{props.children}</>;
}
否則它只會始終呈現
return (
<>
</>
)
事實上,您正在使用Inner
組件渲染一個空 Fragment - 沒有任何子節點。 React 組件不會在內部渲染其子組件,除非您明確告訴它們這樣做:
function Inner(props) {
return (
<>
{props.children}
</>
)
}
這樣,在<Inner>
內部傳遞的每個組件都將被渲染(因為它是children
屬性的一部分)。
您也可以簡化它,因為根本不需要使用 Fragment,只需返回props.children
就可以了。
function Inner(props) {
return props.children
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.