React中使用GLPK.js报错“GLPK is not a function”问题求助
解决glpk.js导入后调用报错:TypeError: GLPK is not a function
你遇到的问题是对glpk.js的导入用法理解有误,这个库导出的是包含所有API的对象,而非可调用的初始化函数。
错误原因
你写的const glpk = GLPK()是把导入的GLPK对象当成函数调用了,但require('glpk.js')返回的是一个对象,直接调用它自然会报“不是函数”的错误。另外错误里的(in promise)只是因为你的代码在async函数中,错误被Promise上下文捕获,和导入本身是否异步无关,所以加await包裹require根本没用。
正确用法
直接使用导入的GLPK对象调用其API即可,示例代码如下:
const foo = async () => { const GLPK = require('glpk.js'); // 创建规划问题实例 const prob = GLPK.glp_create_prob(); // 后续调用其他API,比如设置目标函数、添加约束等 GLPK.glp_set_obj_name(prob, 'my_ilp_problem'); // ... 其他ILP求解逻辑 }
如果你的项目使用ES模块语法(比如React/Vue项目,或package.json里设置了"type": "module"),可以改用import导入:
import GLPK from 'glpk.js'; const foo = async () => { const prob = GLPK.glp_create_prob(); // ... 后续操作 }
额外提示
如果需要确认glpk.js的API细节,直接查看本地安装的库的README文档(node_modules/glpk.js/README.md),里面有完整的用法说明和示例。
内容的提问来源于stack exchange,提问作者CDH
相关产品推荐
相关产品推荐

