私は現在、反応アプリケーションに取り組んでいます。ボタン付きのトップバーがあり、Registration
コンポーネントを onClick 関数にレンダリングしたいと考えています。以下の出力はありません。ここで何かが足りないのですか?
'use strict'
import React from 'react'
import Registration from 'Registration'
export default class Header extends React.Component {
constructor (props) {
super (props)
this.handleClick = this.handleClick.bind(this)
}
handleClick () {
<Registration />
}
render () {
return (
<div className='top-bar'>
<div className='top-bar-left'>
<ul className='menu'>
<li className='menu-text'>SIS App</li>
<li>
<button className='button' type='button' onClick={this.handleClick}>Create Info</button>
</li>
</ul>
</div>
</div
)
}
}
これが私の登録コンポーネントです。
'use strict'
import React, {Component} from 'react'
export default class Registration extends Component {
render () {
let props = this.props
let {edit} = props
let handleChange = props.handleChange()
return (
<fieldset>
<legend>Registration</legend>
<input name='name'
value={props['name']}
type='text'
placeholder='Your Name'
onChange={handleChange}
/>
<input name='email'
value={props['email']}
type='email'
placeholder='Email'
onChange={handleChange}
/>
<input name='phone'
value={props['phone']}
type='tel'
pattern={PhoneNumberPattern}
placeholder='Phone'
onChange={handleChange}
/>
</fieldset>
)
}
}
そして私の app.js:
'use strict'
import React from 'react'
import { render } from 'react-dom'
import Header from 'Header'
render(
<div>
<Header />
</div>,
document.getElementById('app')
)
登録コンポーネントをレンダリングしたいが、レンダリングする場所を定義していない。
import React from 'react'
import Registration from 'Registration'
export default class Header extends React.Component {
constructor (props) {
super (props)
this.state = {
registration: false
}
this.handleClick = this.handleClick.bind(this)
}
handleClick () {
this.setState({registration: true})
}
render () {
return (
<div className='top-bar'>
<div className='top-bar-left'>
<ul className='menu'>
<li className='menu-text'>SIS App</li>
<li>
<button className='button' type='button' onClick={this.handleClick}>Create Info</button>
<li>
</ul>
{this.state.registration ? <Registration/>: null}
</div>
)
}
}
ただし、理想的には、ボタンがクリックされるたびに登録コンポーネントにルーティングしたいと思いdynamic routing
ます。登録コンポーネントのルートを定義した後、それを使用してそれを行うことができます。
この方法で実行したい場合は、このソリューションを参照してください
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加