簡體   English   中英

數組未從 Python Eel 傳遞到 Javascript

[英]Array not passing from Python Eel to Javascript

嗨,我目前正在使用 Python Eel、JS 和 HTML 開發桌面應用程序,但似乎無法將 Python 列表傳遞給 JS 以獲取新的 function。Python 端工作正常,因為它打印出預期文件列表給我的名字。 如果我將 let array = ['a','b','c'] 插入 JS 腳本中,那么我會得到 3 個標記為這樣的按鈕,但是當嘗試將列表從 Python 傳遞給 JS 時,它不起作用並且我收到一個 callback=null 錯誤。 我已經嘗試了多種方法來解決這個問題,但似乎找不到答案:(PS。我已經嘗試使用 json 行進行評論和取消評論,但這些都不起作用)。

Python 腳本:

@eel.expose
def OverView_Data():
    Acc_Files = os.listdir("C:\\Users\\Bex\\Records\\Accessioning")
    Acc_Files = [x[:-4] for x in Acc_Files]
    #Acc_Files = json.dumps(Acc_Files)
    #Acc_Files = json.loads(Acc_Files)
    print(Acc_Files)
    return (Acc_Files)

腳本:

eel.expose(OverView);
async function OverView(){
    let Array = await eel.OverView_Data()
    console.log(Array)
    for (var i=0; i<Array.length; i++) {
    var btn = document.createElement("button");
    var t = document.createTextNode(Array[i]);
    btn.appendChild(t);
    document.body.appendChild(btn);
    }
}

嘗試改用這一行:

let Array = await eel.OverView_Data()();

不同之處在於()在現有行的末尾。 您可以在Eel 文檔頁面上閱讀更多關於為什么需要這種方法的信息(只需搜索相關部分的await頁面)。

最后,一個不相關的建議......你應該考慮避免使用名為Array的 JavaScript 變量,因為Array是 JavaScript 中的全局變量 object,它可能會導致一些問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM