使用React.js时,何时何地以及如何向document.body添加类

目前我正在这样做,但这不是react.js的方式,对吗?render()是否正确?有什么选择?

  var App = React.createClass({

render: function() {

if (this.state.touchMode === 2) {

$('body').addClass('touchMode');

}

return (<div> etc /div>)

}

)}

回答:

最好将此逻辑保留在组件之外。事件发射器是一种抽象的好方法。

var globalEvents = new EventEmitter();

var App = React.createClass({

setTouchMode: function(touchMode){

globalEvents.emit('touchModeChange', touchMode);

},

render: ...

});

// outside any react class

globalEvents.on('touchModeChange', function(mode){

if (mode === 2) {

$('body').addClass('touchMode');

}

else {

$('body').removeClass('touchMode');

}

});

如果确实需要将其作为一个或多个组件状态的一部分,则它们还可以侦听该事件并在处理程序中更新其状态。

以上是 使用React.js时,何时何地以及如何向document.body添加类 的全部内容, 来源链接: utcz.com/qa/425708.html

回到顶部