第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

react內(nèi)如何定義全局函數(shù)?

react內(nèi)如何定義全局函數(shù)?

白衣染霜花 2018-09-14 15:18:36
小弟以前是專注寫頁面的前端,近期老大給了一個react的項目比較難懂,希望圈內(nèi)大??梢灾医饣?!問題如下:我現(xiàn)在的頁面內(nèi)嵌了一個iframe(公用登錄框),iframe內(nèi)會返回是否登錄成功,若成功則在最外層頁面返回一個值給callback函數(shù)如下:那么這個callback函數(shù)就要在最外層頁面的window下定義(是這樣沒錯吧?),目的是判斷是否有返回約定的值若有則關(guān)閉iframe(將iframe的state改為隱藏)可是我不知道應(yīng)該如何在react中定義全局函數(shù),項目中的app.jsx中的方法都被包裹在這個類中,可以在這個類中定義嗎?初學(xué)react與es6,很多不明白的地方,如果有沒講清楚的地方望提醒謝謝!
查看完整描述

1 回答

?
紅糖糍粑

TA貢獻1815條經(jīng)驗 獲得超6個贊

首先App這個class(app.jsx里的class)是在最外層window 下定義的對吧?所以在登錄iframe 內(nèi)調(diào)用window.top.callback()實際上是調(diào)用最外層window 的全局方法window.callback(),是吧。

問題就變成了如何通過調(diào)用window.callback(),觸發(fā)調(diào)用App組件實例的方法callback()。

你當(dāng)然可以直接在constructor 里寫:

window.callback = () => _this.callback()

也可以通過自定義事件機制,在window.callback()里trigger 一個事件:

window.callback = () => eventBus.trigger('callback')

Appconstructor里監(jiān)聽這個事件:

constructor(props, _this) {
    super(props);
    eventBus.on('callback', () => _this.callback())
}

另外如果你們項目中有Flux 或者Redux,那就應(yīng)該通過這些庫來管理組件狀態(tài)。


查看完整回答
反對 回復(fù) 2018-10-31
  • 1 回答
  • 0 關(guān)注
  • 7192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號