Изменение порядка индексов при отображении массивов с помощью React - PullRequest
0 голосов
/ 03 июля 2019

Я изменяю свойство объекта в отображении и хочу изменить индекс, когда свойство объекта равно changed ( = input disabled), так какой лучший способ это сделать?

Я пытался создать новый массив для индекса, но могуне заставить его работать, потому что тогда ему понадобится вложенное отображение с отдельными массивами, и я не смогу заставить его работать.

edit: я использую индекс для обозначения позиции текстовой части в официальном документе, поэтому этот индекс так важен.

onToggleTextPart = (e, index) => {
    const node = this.myCheckbox[index]
    let newStates = [ ...this.state.meeting_parts ];
    if(node.checked) {
      newStates[index - 1].type_tag = "Included";
    }
    else {
      newStates[index - 1].type_tag = "notIncluded";
      newStates.splice(index-1, 1)

    }
    this.setState({ meeting_parts: newStates });
  }
return _.map(meeting_parts, (meet, index) => {
      let checked = meet.type_tag === "Included" ? true : false;
      return 
        <div className="form-group">
          <div className="input-group">
            <div className="input-group-prepend">
              <span className="input-group-text minutes-agenda-item-number">
                {index} (THIS is the index i want to change)
              </span>
            </div>

Я хочу, т.е. когда я скрываю один объект от индекса 6, он «отдает» свой индекс, а индекс 7 занимает свою позицию.

1 Ответ

0 голосов
/ 03 июля 2019

Хорошо, насколько я понимаю, вы хотите сделать это:

meeting_parts.filter((meet)=>meet.type_tag === "Included").map((meet, index)=>{
 // your mapping function here
});

Фильтр вернет массив собраний, для которых type_tag "Включен".

Вы можете прочитать о функция фильтра .

РЕДАКТИРОВАТЬ:

let includedCount = 0;
meeting_parts.map((meet, index)=>{
  if(meet.type_tag === "Included") {
    includedCount += 1;
  }
  // your mapping function here but use inlcudedCount instead of index
});

Конечно, теперь он отображает несколько раз в несколько раз.Если вы не хотите, чтобы они отображались, вы должны добавить логику, чтобы отключить рендеринг при необходимости.

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