Javascript 在React呈现函数中使用jQuery
我有以下React渲染功能:Javascript 在React呈现函数中使用jQuery,javascript,jquery,if-statement,reactjs,jsx,Javascript,Jquery,If Statement,Reactjs,Jsx,我有以下React渲染功能: render: function () { return ( <Popup onClose={this.props.onClose}> <Form entity="strategy" edit="/strategies/edit/" add="/strategies/add/"> <h2>Create/Edit S
render: function () {
return (
<Popup onClose={this.props.onClose}>
<Form entity="strategy" edit="/strategies/edit/" add="/strategies/add/">
<h2>Create/Edit Strategy</h2>
<StrategyForm pending={this.state.pending} formData={this.state.data} />
<div className="col-md-6">
<Assisting />
</div>
</Form>
</Popup>
);
}
render:function(){
返回(
创建/编辑策略
);
}
我想让h2标题以身体类为基础,所以我的问题是…我可以这样做吗
render: function () {
return (
<Popup onClose={this.props.onClose}>
<Form entity="strategy" edit="/strategies/edit/" add="/strategies/add/">
if ( $('body').hasClass("this") ) {
<h2>Create This Strategy</h2>
} else {
<h2>Create Another Strategy</h2>
}
<StrategyForm pending={this.state.pending} formData={this.state.data} />
<div className="col-md-6">
<Assisting />
</div>
</Form>
</Popup>
);
}
render:function(){
返回(
if($('body').hasClass(“this”)){
创建此策略
}否则{
创建另一个策略
}
);
}
如果这是一个糟糕的想法,有人能告诉我在React中做这件事的更好方法吗?正如已经在OP的一些评论中指出的那样,你可以这样做,但这不是真正的“React”方式 更好的解决方案可能是将
prop
传递到组件的用法中,或者在组件的状态上有一个标志——然后使用该prop/flag进行渲染
伪代码:
render() {
return (
if (this.props.someProp) {
<h2>Create this Strategy</h2>
} else {
<h2>Create this Strategy</h2>
}
);
}
您可以将属性传递给组件:
ReactDOM.render(
<MyComponent someProp={true} />,
document.getElementById('some-div')
);
然后在
render()
中检查this.state.someProp
这可能是个坏主意(绝对没有理由使用jQuery),但你到底想做什么?@tobiasandersen我想是的。我只是尝试根据body类返回两个不同的标题。虽然可以按您的要求执行,但这不是执行此操作的“反应方式”。您是否仅对此组件使用React?何时、如何以及为什么设置body类?@tobiasandersen该web应用程序有两个部分。该站点的外观基于body类。所以只有两个身体类别的可能性。我对许多组件和大多数前端使用react。但我在这件作品上遇到了麻烦。我不能像上面所示使用jQuery,所以来这里寻求帮助谢谢你的回答。我没有编写React函数,但现在正在其中工作。你能给我一点关于如何创建基于身体类的道具的见解吗。抱歉,我不清楚这是如何工作的。更新了示例:-)
ReactDOM.render(
<MyComponent someProp={true} />,
document.getElementById('some-div')
);
ReactDOM.render(
<MyComponent someProp={$('body').hasClass("this")} />,
document.getElementById('some-div')
);
componentDidMount() {
this.setState({
someProp : $('body').hasClass("this")
});
}