gpt4 book ai didi

java - 将 React 与 Nashorn 一起使用会抛出 "ReferenceError: "控制台“未定义”

转载 作者:行者123 更新时间:2023-11-29 16:11:10 27 4
gpt4 key购买 nike

我正在使用 "react": "~0.12.2"

以及以下代码:

@RequestMapping("/")
@ResponseBody
private String home() throws ScriptException, IOException {
loadReact();
InputStream jsStream = resourceLoader.getResource("classpath:public/js/server.js").getInputStream();
engine.eval(new InputStreamReader(jsStream));
return engine.eval("renderServerside()").toString();
}

private void loadReact() throws ScriptException, IOException {
InputStream jsStream = resourceLoader.getResource("classpath:public/lib/react/react.js").getInputStream();

// React expects 'window' or 'global' to be set
engine.eval("var global = this");
engine.eval(new InputStreamReader(jsStream));
}

我的 server.js 看起来像这样:

function renderServerside() {
var MyComponent = React.createClass({
render: function () {
return React.DOM.h1(null, 'Hi, ' + this.props.msg)
}
});

return React.renderComponentToString(MyComponent({msg: 'World!'}));
}

并得到这个异常:

javax.script.ScriptException: ReferenceError: "console" is not defined in <eval> at line number 18108] with root cause

jdk.nashorn.internal.runtime.ECMAException: ReferenceError: "console" is not defined

那么nashorn怎么能不提供控制台呢?

我厌倦了从这个页面实现基本示例:React with Nashorn

最佳答案

Rhino 之前也没有提供。你可以用类似的东西实现你自己的控制台

console = { 
log: print,
warn: print,
error: print
};

要获得完整的控制台支持,您可能需要添加更多功能。请参阅:Console

关于java - 将 React 与 Nashorn 一起使用会抛出 "ReferenceError: "控制台“未定义”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27636806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com