React.js 更新作为参数传递的组件

React.js Update component passed as argument

我正在使用 React.js 和 Strophe.js 开发 web xmpp 聊天,但我 运行 遇到了很多问题。

XMPP 连接存储单个对象,但棘手的是,连接状态更改由 class 处理,我可以在其中存储真正的处理程序(因为显示连接状态将有 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;

或者可以在组件上定义回调,并将其作为参数传递(但不是静态函数)

一个可以清理代码的想法是在连接状态改变时发出一个事件。然后在 componentDidMount 内的反应组件中收听该事件并相应地设置状态。

像这样:http://jsfiddle.net/kb3gN/11114/