gpt4 book ai didi

javascript - 在 React 中显示或隐藏元素

转载 作者:IT老高 更新时间:2023-10-28 13:11:19 28 4
gpt4 key购买 nike

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

var Search= React.createClass({
handleClick: function (event) {
console.log(this.prop);
},
render: function () {
return (
<div className="date-range">
<input type="submit" value="Search" onClick={this.handleClick} />
</div>
);
}
});

var Results = React.createClass({
render: function () {
return (
<div id="results" className="search-results">
Some Results
</div>
);
}
});

React.renderComponent(<Search /> , document.body);

最佳答案

2020 年左右 react

onClick 回调中,调用 state hook's setter 函数更新状态并重新渲染:

const Search = () => {
const [showResults, setShowResults] = React.useState(false)
const onClick = () => setShowResults(true)
return (
<div>
<input type="submit" value="Search" onClick={onClick} />
{ showResults ? <Results /> : null }
</div>
)
}

const Results = () => (
<div id="results" className="search-results">
Some Results
</div>
)

ReactDOM.render(<Search />, document.querySelector("#container"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.13.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.13.1/umd/react-dom.production.min.js"></script>

<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>

JSFiddle

2014 年左右 react

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

var Search = React.createClass({
getInitialState: function() {
return { showResults: false };
},
onClick: function() {
this.setState({ showResults: true });
},
render: function() {
return (
<div>
<input type="submit" value="Search" onClick={this.onClick} />
{ this.state.showResults ? <Results /> : null }
</div>
);
}
});

var Results = React.createClass({
render: function() {
return (
<div id="results" className="search-results">
Some Results
</div>
);
}
});

ReactDOM.render( <Search /> , document.getElementById('container'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.6.2/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/15.6.2/react-dom.min.js"></script>

<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>

JSFiddle

关于javascript - 在 React 中显示或隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24502898/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com