Работаете с индексом отображаемых элементов? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть приложение React, которое показывает 12 элементов на странице.Каждый элемент поступает из массива, и я использую метод map для отображения их на странице.Чтобы создать это, я создал класс с именем Tags:

export default class Tags {
public title: string;
public id: string;
public active: boolean;

constructor(title: string, id: string, active: boolean) {
    this.title = title;
    this.id = id;
    this.active = active;
}

}

и контейнерный tsx-файл, который отображает эти 12 элементов: в этой строке вызывается метод renderTags, который отображает элементы настр.Он извлекает элементы из массива с именем allTags и применяет к нему метод map:

<div  className={styles.tagCloud}>
              {this.state.allTags.slice(0, 12).map((t,index) => this.renderTags(t,index))}

        </div>

Это метод renderTags.Здесь есть вызов другого метода с именем collectTags, и я передаю элемент clicked и индекс:

private renderTags(tag: Tags, index:number) {

    return <div>
        <p onClick={(e) => { e.stopPropagation(); this.collectTags(tag,index); return false;}}>
            # {tag.title} <i className="ms-Icon ms-Icon--CirclePlus"></i>
        </p>
    </div>
}

, и это - collectTags.Здесь я пытаюсь получить доступ к свойству «active» выбранного элемента, используя индекс, который был отправлен из метода renderTags:

private collectTags(tags: Tags, index: any): any {
   console.log('TAG INDEX: ' + Tags[index]);
   Tags[index].active = true;

}

Здесь, когда я нажимаю на элемент, console.log говорит, что теги[index] не определенЯ ожидал получить индекс по нажатому элементу.Когда я запускаю console.log для Tags, я получаю возвращаемый объект (элемент clicked), и если я проверяю параметр index в консоли, я получаю индекс для элемента clicked.Но вместе, теги [index], я получаю неопределенное значение.

Как я могу обновить активный параметр выбранного элемента, я думал что-то вроде этого:

Tags[index].active = true;

С уважением к Американо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...