javascript - 材料表详细信息面板不会在状态更改时重新渲染
问题描述
当 Material-UI 选项卡组件的选项卡选择发生更改时,我在重新渲染 Material Table 的详细信息面板时遇到问题。我期望发生的是当我在选项卡列表中选择第二个选项卡时,样式和组件应该重新呈现以在 DOM 中反映这一点。截至目前,这还没有发生。value属性正在更新,但 DOM 永远不会从 value 更改中重新呈现。我传递给 handleChange 函数的value属性是一个索引。因此,对于 3 个选项卡,将有 3 个不同的值(0、1、2)
从这个例子可以看出,当你点击 AppBar 中的后续标签时,状态会自动更新和更改。我可以通过单击不同的选项卡来有效地更改“值”属性,但是永远不会重新呈现详细信息面板,并且始终选择第一个选项卡。
这个PR有一个类似的问题,但我无法得到任何满足我需要的答案。
import AppBar from '@material-ui/core/AppBar'
import Tabs from '@material-ui/core/Tabs'
import Tab from '@material-ui/core/Tab'
function TableComponent(props) {
const [value, setValue] = React.useState(0)
const handleChange = (event, newValue) => {
setValue(newValue)
}
function getVersionsTabs (rowData) {
const versions = Object.keys(rowData.versions)
var versionList = versions.map(function (name, index) {
const version = rowData.versions[name]
return <Tab key={index} label={version.versionAlias} />
})
return versionList
}
return (
<MaterialTable
...otherProps
detailPanel={
rowData => {
return (
<div>
<AppBar position='static' color='default'>
<Tabs value={value} onChange={handleChange} indicatorColor='primary' textColor='primary'>
{getVersionsTabs(rowData)}
</Tabs>
</AppBar>
</div>
)
}
/>
)
}
任何帮助是极大的赞赏!
解决方案
推荐阅读
- java - 如何覆盖 openide.awt.NotificationDisplayer 方法?
- java - 如何知道提供的 URL 是 Android Studio 中的图像或视频
- python - Python中点画法绘画的随机化算法
- vim - VIM:转到当前单词的末尾并切换到插入模式
- c# - MAUI 预览 9 “版本代码 1.0 无效。它必须是一个整数值。” 更新 Visual Studio 2022 Preview 6.0 时出错
- python - 使用带有'splitlines()'的连续线边界
- arrays - 在C中创建数组时,为什么不能先创建再定义呢?
- c# - 引导表中的分页/全局搜索在 Blazor 中无法正常工作
- c++ - 如何在 Miracl 库中进行序列化?
- python - 如何在python中用尾随零舍入数字