gpt4 book ai didi

reactjs - ag-grid react cellRendererFramework 在状态改变时不会重新渲染

转载 作者:行者123 更新时间:2023-12-04 17:42:21 24 4
gpt4 key购买 nike

我在 ag-grid-react 中显示数据,网格已经基于状态进行了条件单元格渲染。这是我的代码。这是第一次运行并显示“YEAH”按钮。当我点击按钮时,我想用 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>

}

这是状态改变者
changebutton() {
this.setState({isyes: "no" })
console.log(this.state.isyes)
}

我看到状态正在正确变化,但没有看到按钮的任何变化。为什么?

最佳答案

您的代码似乎不完整,无法检查您的情况。首先想到的是表达式被评估一次(也许,因为它不是直接在渲染函数中显示为对象的方法)并且永远不会重新触发。

另请注意 setState()async所以你不应该 :

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

相反 你应该 :
this.setState(
{isyes: "no" },
() => console.log(this.state.isyes);
);

尝试:
api.refreshCells() 

引用:ag-grid.com/javascript-grid-cell-rendering-components

关于reactjs - ag-grid react cellRendererFramework 在状态改变时不会重新渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53886039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com