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
内的反应组件中收听该事件并相应地设置状态。
我正在使用 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
内的反应组件中收听该事件并相应地设置状态。