我正在使用React.js和Strophe.js开发web xmpp聊天,而且我遇到了相当大的问题。
XMPP连接存储单个对象,但是什么是棘手的,连接状态更改由类处理,我可以存储真正的处理程序(因为显示连接状态将有2个不同的视图,并且Strophe.OnConnection处理程序无法更改后初始化)
我想要实现的是将组件传递给一个函数,用新道具渲染自己,就像它一样
var statusHandler = {
handler:"",
setStatus: function(status) {
React.render(<this.handler value=status/>, dom);
}
}
var firstContainer = React.render(<anotherComponent/>, dom);
statusHandler.handler = firstContainer;
XMPPConnection(login,pwd,statusHandler.setStatus);
//now changing component
var secondContainer = React.render(<anotherComponent/>, dom);
statusHandler.handler = secondContainer;
或者可以在组件上定义回调,并将其作为参数传递(但不是静态函数)
答案 0 :(得分:1)
可能清理代码的一个想法是在连接状态发生变化时发出事件。然后在componentDidMount
内的反应组件内部听取该事件并相应地设置您的状态。