React.js:如何在点击时添加组件?

我是React的新手,对某种基本的东西感到困惑。

我需要在单击事件后呈现DOM之后将组件添加到DOM。

我最初的尝试如下,但是没有用。但这是我想尝试的最好的方法。(预先为将jQuery与React混合使用而道歉。)

    ParentComponent = class ParentComponent extends React.Component {

constructor () {

this.addChild = this.addChild.bind(this);

}

addChild (event) {

event.preventDefault();

$("#children-pane").append(<ChildComponent/>);

}

render () {

return (

<div className="card calculator">

<p><a href="#" onClick={this.addChild}>Add Another Child Component</a></p>

<div id="children-pane">

<ChildComponent/>

</div>

</div>

);

}

};

希望我已经清楚需要做什么,希望您能帮助我获得适当的解决方案。

回答:

正如@Alex McMillan所提到的那样,使用state来指示应在dom中呈现的内容。

在下面的示例中,我有一个输入字段,当用户单击按钮时,我想添加第二个字段,onClick事件处理程序调用handleAddSecondInput(),将inputLinkClicked更改为true。我正在使用三元运算符来检查真实状态,该状态将呈现第二个输入字段

class HealthConditions extends React.Component {

constructor(props) {

super(props);

this.state = {

inputLinkClicked: false

}

}

handleAddSecondInput() {

this.setState({

inputLinkClicked: true

})

}

render() {

return(

<main id="wrapper" className="" data-reset-cookie-tab>

<div id="content" role="main">

<div className="inner-block">

<H1Heading title="Tell us about any disabilities, illnesses or ongoing conditions"/>

<InputField label="Name of condition"

InputType="text"

InputId="id-condition"

InputName="condition"

/>

{

this.state.inputLinkClicked?

<InputField label=""

InputType="text"

InputId="id-condition2"

InputName="condition2"

/>

:

<div></div>

}

<button

type="button"

className="make-button-link"

data-add-button=""

href="#"

onClick={this.handleAddSecondInput}

>

Add a condition

</button>

<FormButton buttonLabel="Next"

handleSubmit={this.handleSubmit}

linkto={

this.state.illnessOrDisability === 'true' ?

"/404"

:

"/add-your-details"

}

/>

<BackLink backLink="/add-your-details" />

</div>

</div>

</main>

);

}

}

以上是 React.js:如何在点击时添加组件? 的全部内容, 来源链接: utcz.com/qa/422785.html

回到顶部