2016-04-12 22 views
1

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

+0

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

+0

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! –

cevap

1

, benim durumumda ben tarayıcı konsol günlükleri görmeye başladı:

maxAge 50 1 VM611:1 
maxAge 50 2 VM611:1 
maxAge 50 3 VM611:1 
biraz araştırma yaptık

ve bunlar muhtemelen UÖM'nin LRU önbellekten geliyordu öğrendim, bu yüzden npm cache clean ran konsoldan. Hatalar gitti ve HOC'm nihayet beklendiği gibi ortaya çıktı. Görünüşe göre bozuk bir NPM önbelleği suçluydu.