Событие onClick - изменение данных для одной строки в таблице реагирования

У меня есть столбец в моей таблице реагирования, который использует переменную (именованный элемент) для отображения своих данных. Как показано в коде ниже:

{
  Header: this.generateHeaderCell(this.props.headers[3]),
  accessor: 'last_updated_status',
  Cell: (props: any) => <DateSinceFormat date={props.value} item={item}/>,
  maxWidth: 85,
  filterable: false
}

Поэтому, когда значение переменной item равно 1, оно отображает некоторые данные, а когда оно изменяется, оно отображает что-то еще.

Я использую событие onClick для изменения значения элемента.

onRowClick = (state, rowInfo, column, instance) => {
    return {
        onClick: e => {
            if(item === '2') {
                item = '1';
            } else {
                item = '2';
            }
            instance.forceUpdate();
        }
    };
}

Проблема, с которой я здесь сталкиваюсь, заключается в том, что я хочу обновить значение только для определенной строки, по которой щелкает пользователь, однако сейчас все строки обновляются.

Пожалуйста, помогите мне здесь и дайте мне знать, как решить эту проблему.

1 ответ

Похоже, значение для item распределяется между всеми строками. Вы можете попробовать добавить item собственность на rowInfo (Я предполагаю, что это объект), и изменить onClick() функция к

onClick: e => {
         if(rowInfo.item === '2') 
         {
             rowInfo.item = '1';
         } 
         else 
         {
             rowInfo.item = '2';
         }
   instance.forceUpdate();
}
Другие вопросы по тегам