Javascript 在React呈现函数中使用jQuery

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

我有以下React渲染功能:

   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")
    });
}