私はReactを初めて使用しており、これを把握することはできません。私は、クリックするとタブのコンテンツを表示する動的なタブを作成しようとしています。コンソールで「未定義のhandleClick 'プロパティを読み取ることができません」というメッセージが表示されます。ここで私がこれまで持っているものです。未定義の 'handleClick'プロパティを読み取ることができません
<script type="text/babel">
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
tabs: [
{id: 0, name: 'Foo'},
{id: 1, name: 'Bar'},
{id: 2, name: 'Fizz'}
],
contents: [
{name: 'Foo', content: 'Hello'},
{name: 'Bar', content: 'World'},
{name: 'Fizz', content: 'Buzz'},
]
};
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
console.log('Hi');
}
renderTab(tab) {
return(<Tab key={tab.id}
value={tab.name}
onClick={() => this.handleClick()}
/>
);
}
renderContent(i) {
return(<Content content={this.state.contents}/>);
}
render() {
return(
<div className="container-tabs">
<div className="tab">
{this.state.tabs.map(this.renderTab)}
</div>
<div className="tabcontent">
<p>{this.renderContent}</p>
</div>
</div>
) ;
}
}
class Tab extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<button className="tablinks"
onClick={() => this.props.onClick()}>
{this.props.value}
</button>
);
}
}
class Content extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div className="tabcontent">
{this.props.content}
</div>
);
}
}
ReactDOM.render(
<App/>,
document.getElementById('root')
);
</script>
上記の方法で問題を解決できましたか? –
ありがとう! – nachomacaso
上記の問題を解決する場合は、答えとしてマークしてください。これは後でこのスレッドを読むのに役立つかもしれません。スタックオーバーフローで投稿した質問についても同じことをしてください。最初の問題を解決することがどれほど有益だったかに応じて、それをアップ投票、ダウン投票、またはそれを回答としてマークすることができます。とにかく、あなたが作ってくれてうれしいです。 –