我已经使用 create-react-app 来构建初始的 React 应用程序。
我的 仪表板 组件:
import React, { Component } from 'react';
import { Link } from 'react-router-dom';
import $ from 'jquery';
import 'signalr';
class Dashboard extends Component {
constructor(props) {
super(props);
var connection = $.hubConnection('http://[address]:[port]');
var proxy = connection.createHubProxy('[hubname]');
// atempt connection, and handle errors
connection.start()
.done(function(){ console.log('Now connected, connection ID=' + connection.id); })
.fail(function(){ console.log('Could not connect'); });
}
render() {
return (...);
}
}
export default Dashboard;
现在我从 SignalR 得到以下错误,说没有添加 jQuery,但我已经在上面的行中导入了它:
错误:未找到 jQuery。请确保在 SignalR 客户端 JavaScript 文件之前引用 jQuery。
如果我注释掉 import “signalr”; jQuery 被正确加载,我可以访问模块内部的 $
。为什么会这样?
原文由 Mahbubur Rahman 发布,翻译遵循 CC BY-SA 4.0 许可协议
这就是我们现在(2020 年)使用新包@microsoft/signalr 的方式。我们使用 Redux,但您不必使用 Redux 也能使用此方法。
如果您使用的是@microsoft/signalr 包而不是@aspnet/signalr,那么您可以这样设置它。这是我们在产品中的工作代码:
然后你会像下面这样打电话。请注意,这是一个伪代码。根据您的项目设置,您可能必须以不同的方式调用它。
让我知道它是否通过投票有所帮助。谢谢