Javascript 为onClick hander插入临时DOM元素

Javascript 为onClick hander插入临时DOM元素,javascript,twitter-bootstrap,dom,reactjs,Javascript,Twitter Bootstrap,Dom,Reactjs,我有一个由React render()生成的HTML表,它绑定到websocket进行实时更新 我想做的是在单元格上附加一个React事件处理程序“onClick”,它用一个自定义的DOM片段(如一些引导下拉HTML)替换单元格中的值,以便用户可以更新该单元格 我可以在click事件处理程序中使用.getDOMNode(),然后手动操作DOM并插入代码,但是,如果由于websocket事件的新更新状态而调用此组件上的render(),它将被覆盖。如果出现这种竞争情况,我需要通知用户,而不是简单地

我有一个由React render()生成的HTML表,它绑定到websocket进行实时更新

我想做的是在单元格上附加一个React事件处理程序“onClick”,它用一个自定义的DOM片段(如一些引导下拉HTML)替换单元格中的值,以便用户可以更新该单元格

我可以在click事件处理程序中使用.getDOMNode(),然后手动操作DOM并插入代码,但是,如果由于websocket事件的新更新状态而调用此组件上的render(),它将被覆盖。如果出现这种竞争情况,我需要通知用户,而不是简单地替换DOM。我刚刚看到componentWillUpdate(),但这仍然感觉我没有正确使用React


有更好的方法吗?操作DOM让人感觉脏兮兮,更改状态不正确。

更新内部组件状态正是针对这种情况。该组件应负责确定其是否处于活动状态。如果使用类似于
active:true
的内容触发单击处理程序时更新组件的状态,则会触发重新渲染。如果
active
为true,则在渲染函数中添加额外的DOM元素。那么你有三种不同的可能性需要考虑:

  • onBlur
  • on更新
    哪个可以 可以通过两种方式触发。无论哪种方式,您都可能希望设置
    active:false
    on状态。
    • WebSocket-您需要通知您的 此处的用户可能不考虑组件是否处于活动状态
    • 用户-将正常更新
这样做意味着React始终完全控制DOM,这是避免React出现问题的一个非常好的方法