ag-grid реагирует cellRendererFramework не рендерится при изменении состояния - PullRequest
0 голосов
/ 21 декабря 2018

Я отображаю данные в ag-grid-реагировать, и сетка имеет условный рендеринг ячейки на основе состоянияВот мой кодЭто работает при первом запуске и отображает кнопку «ДА».когда я нажал кнопку, я хочу изменить с помощью кнопки NOOO

Это состояние

this.changebutton = this.changebutton.bind(this);
this.state= {
   isyes = "yes"
}

Это ag-grid-cell-renderer

cellRendererFramework: (params) => {
  return <div>
   {
     this.state.isyes === "yes" ? 
<button onClick= {() => this.changebutton()}>YEAH</button> 
: 
<button onClick= {() => this.changebutton()}>NOOOO</button>
 }

</div>

}

это состояниеchanger

changebutton() {
     this.setState({isyes: "no" })
      console.log(this.state.isyes)
}

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

1 Ответ

0 голосов
/ 21 декабря 2018

Ваш код кажется неполным для проверки вашей ситуации.Первое, что приходит на ум, - это выражение вычисляется один раз (возможно, так как оно выглядит как метод объекта, который не находится непосредственно в функции рендеринга) и никогда не запускается повторно.

Также отметим, что setState() равно async поэтому вы не должны :

this.setState({isyes: "no" });
console.log(this.state.isyes);

вместо вам следует :

this.setState(
    {isyes: "no" },
    () => console.log(this.state.isyes);
);

Попробуйте:

api.refreshCells() 

ref: ag-grid.com/javascript-grid-cell-rendering-components

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