我反复浏览相应的问题/答案,当我点击一个特定的问题时,我想在再次点击同一个问题时显示答案/并隐藏它。我将特定答案的类从hide改为show(onclick)。但是,单击会显示或隐藏所有问题/答案。我做错了什么?谢谢
import React, {Component} from "react";
import messages from "./messages.js";
class Faq extends Component {
constructor() {
super();
this.state = {show: false};
}
handleClick() {
this.setState({
show: !this.state.show
});
}
render() {
const qa = messages.faqs.category1.map((item, index) => {
return (
<div key={index}>
<p className="App-intro">
<button className="question" onClick={() => this.handleClick()}>{item.question}</button>
</p>
<p className={!this.state.show ? 'hidden' : 'show'}>{item.answer}</p>
</div>
)
});
return (
<div className="App">
{qa}
</div>
);
}
}
export default Faq;
问题/答案对象/数组:
export default {
"faqs": {
"category 1": [
{
"question": "question 1?",
"answer": "answer 1",
},
{
"question": "question 2?",
"answer": "answer 2",
},
{
"question": "question 3?",
"answer": "answer 3",
}
]
// ...category 2 etc
}
}
css:
.hidden{
display: none;
}
.show {
display: block;
}
你可以这样做。
假设你的问题和答案是成对的。制作一对组件并为切换指定状态。然后将该组件迭代到问题数量的长度。所以,您将不会动态地使用与问题相同的组件,并且每个组件都有自己的状态。
而不是处理类名,你可以渲染/不渲染这样的元素:
{
this.state.show && <p>{item.answer}</p>
}
你把它放在渲染函数的div中。您还应该在代码中更改一些额外的内容。但这会让你开始。请注意,状态将应用于所有问题,因此您可能需要添加额外的复杂性,例如每个问题的显示状态。
问题内容: 我第一次弄乱React.js,找不到通过click事件在页面上显示或隐藏内容的方法。我没有在页面上加载任何其他库,所以我正在寻找使用React库的本机方法。到目前为止,这就是我所拥有的。当点击事件触发时,我想显示结果div。 问题答案: 大约在2020年做出反应 在回调中,调用状态挂钩的 setter函数以更新状态并重新渲染: JSFiddle 反应约2014年 关键是使用来更新点击处
问题内容: 按下后如何隐藏“编辑”链接?当我按下编辑键时,是否还可以隐藏“ lorem ipsum”文本? 问题答案:
我有一个AutocompleteTextView,它工作得很好。当我写入一个word时,它会显示相关的结果,但我想在AutoCompleteTextView中显示所有项,而不写入任何word。我怎么能那么做。
我有两个<代码> 当用户从第一个选择框中选择一个值时,我希望第二个选择框只显示连接的值。 我的代码: 因此,当用户从第一个选择框M中选择“test1”时,他在第二个选择框上只会看到“test2”、“test3”和“test4”;第一个框中的“test2”将在第二个框中显示“test6”、“test7”和“test8”。 如何使用JavaScript解决此问题?
我正在做作业(请不要替我做作业)。我已经完成了95%。不过,我在这最后一点上遇到了麻烦。我需要在JText区域显示所选的性别。我必须使用JRadioButton进行性别选择。 我知道JradioButton的工作原理不同。我设置了动作监听器和助记符。我想我搞砸了。看来我可能需要整个团队来设定和行动列表。 非常感谢您的帮助。 以下是我的代码(减去我认为不需要的部分,以便其他人无法复制粘贴作业):
本文向大家介绍jquery显示隐藏元素的实现代码,包括了jquery显示隐藏元素的实现代码的使用技巧和注意事项,需要的朋友参考一下 或 它是个集合肯定没有display属性 $("#firstStep").hide(500);而且可以设置时间;("#firstStep").hide(500);而且可以设置时间; $(".class").css('display','block'); $("#id
显示文本 使用一个 Text 对象 (PIXI.Text)在舞台上展示文本。简单来说,你可以这样使用它: let message = new Text("Hello Pixi!"); app.stage.addChild(message); 这将会在画布上展示文本“Hello, Pixi”。Pixi的文本对象继承自Sprite类,所以它包含了所有相同的属性,像x, y, width, height
问题内容: 我正在尝试创建一个文本框,当选中它时,UIPickerView将打开,并提供可供选择的选项。选择后,UIPickerView将隐藏,并且所选项目将显示在文本框中。我尝试了在网上找到的不同代码,但是无法正常工作。如果有人可以为此建议完整的代码,或者告诉我我在代码中做错了什么,那真是太棒了。非常感谢。 这是我的代码: 问题答案: 如果我了解您的问题,那么您需要: 具有该显示文本选择的 用户