在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ react pubsub 首次訂閱失敗

react pubsub 首次訂閱失敗

使用PubSub.subscribe 首次訂閱失敗,點(diǎn)擊返回重新點(diǎn)擊發(fā)布后成功但是訂閱成功了兩次,第三次之后就正常了,
但是在app.jsx中不使用switch 而直接使用Subject跟Result兩個(gè)組件就沒有問題。多多指教謝謝?。?/p>

app.jsx中
    <Switch>
        <Route path='/subject' component={Subject}/>
        <Route path='/result/' component={Result}/>
        <Redirect to='/subject'/>
    </Switch>
subject.jsx    發(fā)布訂閱消息
    handerSubmit = ()=>{
        PubSub.publish('out',outcome);
        this.props.history.push('/result')

    }
result.jsx    接收訂閱消息    
    componentDidMount(){
        let subscr;
        new Promise((resolve,reject)=>{
            subscr = PubSub.subscribe('out',(msg,outcome)=>{
                console.log(1)
                //alert(outcome);
                arr  = [
                    outcome[4]+outcome[9]+outcome[13]+outcome[17]+outcome[23]+outcome[29],
                    outcome[2]+outcome[5]+outcome[12]+outcome[19]+outcome[21]+outcome[28],
                    outcome[1]+outcome[7]+outcome[14]+outcome[16]+outcome[24]+outcome[27],
                    outcome[0]+outcome[6]+outcome[10]+outcome[15]+outcome[20]+outcome[25],
                    outcome[3]+outcome[8]+outcome[11]+outcome[18]+outcome[22]+outcome[26]
                ];
                resolve(arr)
            })
        }).then(
            (result)=> {
                this.showCanvas(result)
            },

        );

    }
    componentWillUnmount(){
        PubSub.unsubscribe(this.subscr);
    }

問題描述

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

回答
編輯回答
拽很帥

subjectresult兩個(gè)組件都不能同時(shí)加載,肯定發(fā)布了收不到啊。

另外你subscribe的寫法有誤,this.subscr并非指向subscribe返回的函數(shù),因此unsuscribe是失敗的...

2017年8月30日 19:25