我想讓自己的Tabs
組件,以便我可以在我的應用程序中使用選項卡。不過,我似乎有問題試圖提取我需要按類型的子組件。如何讓兒童輸入反應
import React from 'react'
export class Tabs extends React.Component {
render() {
let children = this.props.children
let tablinks = React.Children.map(children, x => {
console.log(x.type.displayName) // Always undefined
if (x.type.displayName == 'Tab Link') {
return x
}
})
return (
<div className="tabs"></div>
)
}
}
export class TabLink extends React.Component {
constructor(props) {
super(props)
this.displayName = 'Tab Link'
}
render() {
return (
<div className="tab-link"></div>
)
}
}
<Tabs>
<TabLink path="tab1">Test</TabLink>
<TabLink path="tab2">Test2</TabLink>
</Tabs>
我console.log
永遠不會返回 「的選項卡鏈接」,它總是返回undefined
,爲什麼呢?
您是不是要讓TabLink擴展Tabs?現在它只是一個兄弟姐妹,因爲它擴展了React.Component。 – Jecoms
@Jecoms等等,我必須擴展Tabs?這將如何工作?是否需要擴展React.Component才能工作? –
我誤解了你的意圖。我覺得x.type是問題,但我必須進一步研究。 – Jecoms