Orada bulabildiğim birçok yararlı Tepki Yüksek Sipariş Bileşeni (HOC) örneği bulunmuyor ve var olan basit olanlar çok basittir. HOC'lar kullanılarak yapılabilir veya yapılamaz. Neyse, bulabildiğim kadarıyla, ben denedim şu ve bu HOC en denemek ve kullanmak için ilk girişimi olduğu için bir şey (muhtemelen bariz) mssing ediyorum eminim:React HOC sarılı bileşenin görüntülenmiyor
HOC:
import { Component, PropTypes } from 'react'
export const WizardWrapper = Step => class extends Component {
constructor(props) {
super(props)
this.nextPage = this.nextPage.bind(this)
this.previousPage = this.previousPage.bind(this)
this.state = {
page: 1
}
}
nextPage() {
this.setState({ page: this.state.page + 1 })
}
previousPage() {
this.setState({ page: this.state.page - 1 })
}
goToPage(page) {
this.setState({ page })
}
render() {
const { onSubmit, submitButtonText, step} = this.props
let hasNext = this.props.step > this.state.page
let hasPrev = this.state.page < this.props.step
let nextText = hasNext ? 'Next' : submitButtonText
return (
<Step previousPage={hasPrev ? this.previousPage : null}
onSubmit={hasNext ? this.nextPage : onSubmit}
{...this.state} {...this.props}/>
)
}
}
Bazı Bileşen:
import { Component, PropTypes } from 'react'
import {WizardWrapper} from 'common/client/components/wizard/WizardWrapper'
import {WizardPage} from 'common/client/components/wizard/WizardPage'
export default class FormTest extends Component {
render() {
let WrapperPage = WizardWrapper(WizardPage)
return (
<div>
{WrapperPage}
</div>
)
}
}
: sarılı bileşeni görüntülemek için
export const WizardPage = (props) => <h1>Some page</h1>
Denemesi (hatta aslında henüz hiçbir şey yapmaz sarma varsa)
Hata görmüyorum, ancak hiçbir şey görüntülenmiyor. Eksik olduğum veya yanlış yaptığım herhangi bir fikir var mı?
TIA! Başkasının bu işe çalışır durumda
Sadece bunu test ettim ve benim için iyi çalışıyor. Eksik olabilecek tek şey, küresel bir şeyiniz olmadıkça, bileşenlerinizdeki 'import React' (İthal Reaksiyon) 'dur. Tam olarak kodunuzu kopyalayıp yapıştırdım ve işe yarıyor. – azium
Teşekkürler - ama şimdi neden benim için değil, gerçekten şaşırıyorum. Tepki benim için sözde-küresel çünkü ben de Meteor kullanıyorum. Tamam biraz daha oynayacağım ve anlayabileceğimi göreceğim. Cevap için teşekkürler! –