在React中显示或隐藏元素

我第一次在React.js上乱搞,找不到通过单击事件在页面上显示或隐藏内容的方法。我没有向页面加载任何其他库,因此我正在寻找使用React库的一些本地方法。这就是我目前所拥有的。我想在单击事件触发时显示results div

var Search=React.createClass({
handleClick:函数(事件){
console.log(this.prop);
},
渲染:函数(){
返回(
<div className=“日期范围”>
<input type=“submit”value=“Search”onClick={this.handleClick}/>
</div>
);
}
});
var Results=React.createClass({
渲染:函数(){
返回(
<div id=“results”className=“search results”>
一些结果
</div>
);
}
});
React.renderComponent(<Search/>,document.body);

大约2020年

onClick回调中,调用状态挂钩的setter函数来更新状态并重新渲染:

const Search=()=>{
常量[showResults,setShowResults]=React.useState(false)
const onClick=()=>setShowResults(true)
返回(
<div>
<input type=“submit”value=“Search”onClick={onClick}/>
{showResults?<Results/>:null}
</div>
)
}
常量结果=()=>(
<div id=“results”className=“search results”>
一些结果
</div>
)
ReactDOM.render(<Search/>,document.querySelector(“容器”))
<脚本src=”https://cdnjs.cloudflare.com/ajax/libs/react/16.13.1/umd/react.production.min.js“&gt&lt/脚本>
<脚本src=”https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.13.1/umd/react-dom.production.min.js“&gt&lt/脚本>
<div id=“容器”>
<!--此元素的内容将替换为您的组件--&燃气轮机;
&lt/部门&gt

JSFIDLE

大约2014年

关键是使用setState更新单击处理程序中组件的状态。当应用状态更改时,将使用新状态再次调用render方法:

var Search=React.createClass({
getInitialState:函数(){
返回{showResults:false};
},
onClick:function(){
this.setState({showResults:true});
},
render:function(){
返回(
<div>
<input type=“submit”value=“Search”onClick={this.onClick}/>
{this.state.showResults?<Results/>:null}
</div>
);
}
});
var Results=React.createClass({
render:function(){
返回(
<div id=“results”className=“search results”>
一些结果
</div>
);
}
});
ReactDOM.render(<Search/>,document.getElementById('container'))
<脚本src=”https://cdnjs.cloudflare.com/ajax/libs/react/15.6.2/react.min.js“&gt&lt/脚本>
<脚本src=”https://cdnjs.cloudflare.com/ajax/libs/react-dom/15.6.2/react-dom.min.js“&gt&lt/脚本>
<div id=“容器”>
<!--此元素的内容将替换为您的组件--&燃气轮机;
&lt/部门&gt

JSFIDLE

发表评论