Распечатать объект в таблицу onClick - не печатать, пока не будет нажат дважды - PullRequest
0 голосов
/ 29 ноября 2018

В основном я хочу, чтобы пользователь нажимал кнопку, чтобы напечатать объект, полученный из веб-службы, в таблицу.Это работает несколько, но мне нужно дважды нажать кнопку, чтобы напечатать.Более подробно: кнопка использует onClick={this.handleClick}, внутри handleClick сделано несколько вещей, в том числе получение рассматриваемого объекта и сохранение его в переменной результата, затем вызов addToTable (result).

addToTable(result){
this.state.rows.push(
  <TableRow>
   <TableCell> {result.example1} </TableCell>
   <TableCell> {result.example2} </TableCell>
  <TableRow>
 )
this.setState({rows: rows});
}

Сама таблица имеет жестко закодированную строку заголовка и ссылается на строки для тела, такие как:

<TableBody>
 {this.state.rows}
</TableBody>

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

1 Ответ

0 голосов
/ 30 ноября 2018

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

Я обнаружил, что this.setState не вызывает фактического обновления / рендеринга таблицы.При замене на this.forceUpdate(); таблица теперь работает правильно.Это не идея, но для новичка это все, что я мог получить на работе.

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