【发布时间】:2018-11-05 19:39:24
【问题描述】:
我是reactJS 的初学者,我正在尝试制作一个包含 3 个按钮 的 web 应用程序,最初应该可以看到第一个按钮的内容,然后单击我想要的任何其他按钮隐藏以前的内容并显示新内容对应于按下的新按钮。
比如说,我在屏幕上连续有3 按钮A,B and C。内容为 "Button A is pressed" 、 "Button B is pressed" 和 "Button C is pressed"
现在 A 的最初内容是“按钮 A 被按下”应该显示在按钮下方。
现在,当我按下任何其他按钮时,B 的内容应该可见,而 "Button B is pressed" 和 A's 的内容应该被隐藏。现在这种情况一次又一次地发生,当我再次按下A 时,"Button A is pressed" 应该是可见的,B 的内容应该被隐藏。 C 也是如此。
我搜索的内容但我不明白如何应用它,因为它们只是切换或显示而不是完成我想做的事情?
https://reactjs.org/docs/faq-functions.html
我实施了什么?
var ASearch = React.createClass({
getInitialState: function() {
return { showResultsA: true };
},
onClick: function() {
this.setState({ showResultsA: true, showResultsB: false, showResultsC: false });
},
render: function() {
return (
<div>
<Button type="submit" placeholder="Button A" onClick={this.onClick} />
{ this.state.showResultsA ? <AResults /> : null }
</div>
);
}
});
var BSearch = React.createClass({
getInitialState: function() {
return { showResultsB: false };
},
onClick: function() {
this.setState({ showResultsA: false, showResultsB: true, showResultsC: false });
},
render: function() {
return (
<div>
<Button type="submit" placeholder="Button B" onClick={this.onClick} />
{ this.state.showResultsB ? <BResults /> : null }
</div>
);
}
});
var CSearch = React.createClass({
getInitialState: function() {
return { showResultsC: false };
},
onClick: function() {
this.setState({ showResultsA: false, showResultsB: false, showResultsC: true });
},
render: function() {
return (
<div>
<Button type="submit" placeholder="Button C" onClick={this.onClick} />
{ this.state.showResultsC ? <CResults /> : null }
</div>
);
}
});
var AResults = React.createClass({
render: function() {
return (
<div id="Aresults" className="search-results">
Button A is Pressed
</div>
);
}
});
var BResults = React.createClass({
render: function() {
return (
<div id="Bresults" className="search-results">
Button B is Pressed
</div>
);
}
});
var CResults = React.createClass({
render: function() {
return (
<div id="Cresults" className="search-results">
Button C is pressed
</div>
);
}
});
这些是我在导入 React 的课堂之外创建的。
export default class Program extends React.Component {
render{
return( <ASearch />
<BSearch />
<CSearch />);
}
【问题讨论】:
-
所以按钮不会是动态的,它总是3对吗?
-
是的,总是 3 个按钮