我第一次在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“></脚本>;
<;脚本src=”https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.13.1/umd/react-dom.production.min.js“></脚本>;
<;div id=“容器”>;
<;!--此元素的内容将替换为您的组件--&燃气轮机;
</部门>
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“></脚本>;
<;脚本src=”https://cdnjs.cloudflare.com/ajax/libs/react-dom/15.6.2/react-dom.min.js“></脚本>;
<;div id=“容器”>;
<;!--此元素的内容将替换为您的组件--&燃气轮机;
</部门>
JSFIDLE