[英]In REACT.js how can I pass a state from child component up to Parent component as a prop
[英]How can I pass values between parent page js and child popup js?
我的父頁面js文件腳本:
var PopupConnect = window.open("http://localhost:8080"); var popup_function = PopupConnect.CreateText();
我的彈出頁面js文件腳本:
function CreateText() { var text = "random text"; return json({ result: text }) }
父頁面中的這條 js 行運行良好,會在瀏覽器中觸發一個新選項卡:
PopupConnect = window.open
我得到的錯誤在它后面的一行中:
Uncaught TypeError: PopupConnect.CreateText is not a function
如何從父頁面js正確調用子頁面中的js函數? 這甚至可能嗎? 以及如何將 CreateText 函數的結果傳遞回父頁面 js?
注意:父頁面在 Python 服務器上運行,子彈出頁面在 Node.js 服務器上運行。 當然,這兩個頁面都是在同一個瀏覽器中打開的。
有些人可能會建議使用 localStorage.setItem 和 localStorage.getItem 方法,但這兩個頁面在不同的本地主機端口上運行,當然在生產中它們將在不同的域上運行。 僅供參考,我已經嘗試過這種方法,但沒有奏效。
更新:
**我最終在父頁面中使用了window.postMessage
並將addEventListener
放在子彈出窗口中,因此一旦收到消息,它就會運行 js 函數。 現在我面臨的問題是時間問題。
如何在調用window.open
之后插入延遲,以便子頁面有時間在父頁面運行 window.postMessage 之前完全加載? 我知道有一種叫做“等待”的東西,但我認為這是因為 JS 被用作后端而不是前端? 解決這個時間問題的最佳方法是什么?**
您可以嘗試使用Window.postMessage 。 希望能幫到你
在父頁面和子頁面中創建事件監聽器。
發送:父頁面發送-----消息---->到子頁面(事件監聽器) 回復:子頁面發送-----消息---->到父頁面(事件監聽器)
更新:關於timming
新頁面加載:您可以在准備好后從新頁面發送消息到父頁面
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.