首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组未从Python Eel传递到Javascript

数组未从Python Eel传递到Javascript
EN

Stack Overflow用户
提问于 2021-08-19 22:46:50
回答 1查看 173关注 0票数 0

嗨,我目前正在开发一个使用Python Eel,JS和HTML的桌面应用程序,但似乎无法将Python列表传递到JS中以实现新函数。Python端工作得很好,因为它为我打印出了期望的文件名列表。如果我在JS脚本中插入一个let array = 'a','b','c‘,那么我就会得到3个标记为’a‘,’b‘,’c‘的按钮,但是当我试图将列表从Python传递到JS时,它不起作用,并且我得到了一个callback=null错误。我尝试了多种方法来解决这个问题,但似乎找不到答案!(PS:我已经尝试过使用注释和未注释的json行,但这两行都不起作用)。

Python脚本:

代码语言:javascript
运行
复制
@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)

JS脚本:

代码语言:javascript
运行
复制
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);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2021-08-24 19:28:57

尝试使用下面这一行:

代码语言:javascript
运行
复制
let Array = await eel.OverView_Data()();

不同之处在于现有行末尾的()。您可以在Eel documentation页面上阅读更多关于为什么需要这种方法的信息(只需在await页面中搜索相关部分)。

最后,一个无关的建议..。您应该考虑避免使用名为Array的JavaScript变量,因为Array是JavaScript中的全局对象,它可能会导致一些问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68855216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档