У меня есть тег <div>
, который содержит различное количество кнопок. Когда каждая кнопка нажата, у меня есть переменная реагирования, которая показывает. Моя проблема в том, что каждый скрытый текст отображается всякий раз, когда я нажимаю любую кнопку; однако я хочу, чтобы кнопки отображали скрытый текст только при нажатии на них, чтобы они вели себя уникально.
Я пробовал некоторые идеи с условным рендерингом, но я не уверен, как правильно атаковать это.
У меня есть функция, которая создает кнопки для каждой церкви. Вот эта функция:
createButtonsForChurches(arr) {
var listOfButtons = [];
for (var i = 1; i < arr.length; i++) { // loop through each church
var currentButton = (
<div>
<button onClick={this.toggle} className="churchButton">{arr[i].name}</button>
{
this.state.on && (
<div className="allContent">
<div className="individualContent">
{(arr[i].femaleStudents[0]) && this.createContentParagraphTextForArray(arr[i].femaleStudents, "Female Students")}
</div>
<div className="individualContent">
{(arr[i].femaleLeaders[0]) && this.createContentParagraphTextForArray(arr[i].femaleLeaders, "Female Leaders")}
</div>
<div className="individualContent">
{(arr[i].maleStudents[0]) && this.createContentParagraphTextForArray(arr[i].maleStudents, "Male Students")}
</div>
<div className="individualContent">
{(arr[i].maleLeaders[0]) && this.createContentParagraphTextForArray(arr[i].maleLeaders, "Male Leaders")}
</div>
</div>
)
}
</div>
);
listOfButtons.push(currentButton);
}
return listOfButtons;
}
Вы также можете увидеть функцию переключения, которая вызывается для атрибута onClick. Вот мой метод переключения и мой конструктор:
constructor(props) {
super(props);
this.toggle = this.toggle.bind(this);
this.state = {
on: false
}
}
toggle() {
this.setState({
on: !this.state.on
});
}
Я не хочу помещать слишком много кода и усложнять вещи - arr - это массив объектов. Эти объекты содержат 4 разных массива, и каждый из них содержит разное количество объектов. Итак, arr - это список церквей, который содержит церкви как объекты, и каждая церковь содержит 4 массива (ученики и лидеры женского и мужского пола), и внутри каждого из этих 4 массивов есть члены как объекты, где бы они ни принадлежали
Я не знаю, как показать скрытый текст только для тех кнопок, на которые я нажимаю. Хотелось бы помочь.