私は自分のアプリケーションでタブを使うことができるように、私自身の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
、なぜを返し、 "タブのリンク" を返すことはありませんか?
タブリンクを拡張することを意味しましたか? React.Componentを継承しているので、今はちょうど兄弟です。 – Jecoms
@Jecomsお待ちください、私はタブを拡張する必要がありますか?それはどのように機能しますか? React.Componentを拡張する必要はありませんか? –
私はあなたの意図を誤解しました。私はx.typeが問題だと思っていますが、私はさらに研究しなければなりません。 – Jecoms