gpt4 book ai didi

datagrid - TypeError : apiRef. current.updateRows 不是 Material ui 数据网格中的函数

转载 作者:行者123 更新时间:2023-12-05 01:07:00 30 4
gpt4 key购买 nike

我想使用 Material UI 制作一个数据网格表。用户可以从表单提交中更新特定行数据的位置。对于性能问题,我想添加来自“material-ui/data-grid”的 useGridApiRef。但我遇到的 apiRef.current.updateRows 不是这个 prblm 的函数。这是我的代码:

  import { rows, columns } from "./helperData.js";
import { DataGrid, useGridApiRef } from "@material-ui/data-grid";
const DataGridPractice = () => {
const [data, setData] = useState(rows)
const [currentRow, setCurrentRow] = useState(null);
const [showDialog, setShowDialog] = useState(false);
const [isSending, setIsSending] = useState(false)
const apiRef = useGridApiRef()
const handleChange = e => {
setCurrentRow({...currentRow, [e.target.name]: e.target.value})
}
const updateRow = () => {
// const updateRows = data.map((item) => item.id === currentRow.id ? currentRow : item)
// setData(updateRows)
apiRef.current.updateRows([currentRow])

setShowDialog(false)
}



return (
<>
<Container>
{currentRow && (
<Dialog
open={showDialog}
TransitionComponent={Transition}
keepMounted
>
<DialogTitle>Update data table</DialogTitle>
<DialogContent>
<CustomeTextField
variant="standard"
margin="normal"
label="First Name"
name="firstName"
value={currentRow.firstName}
onChange={handleChange}
/>
<CustomeTextField
variant="standard"
margin="normal"
label="Last Name"
name="LastName"
value={currentRow.lastName}
onChange={handleChange}
/>
<CustomeTextField
variant="standard"
margin="normal"
label="Emal Address"
name="email"
value={currentRow.email}
onChange={handleChange}
/>
</DialogContent>
<DialogActions>
<CustomeButton color="primary" variant="outlined" onClick={updateRow}>Update</CustomeButton>
<CustomeButton
color="secondary"
variant="outlined"
onClick={() => setShowDialog(false)}
>
Cencel
</CustomeButton>
</DialogActions>
</Dialog>
)}
<CustomeButton
color="primary"
variant="contained"
disabled={!currentRow}
onClick={() => setShowDialog(true)}
>
EDIT
</CustomeButton>
<Paper component={Box} width={1} height={600}>
<DataGrid
onRowSelected={(item) => setCurrentRow(item.data)}
rows={data}
columns={columns}
pageSize={10}
apiRef={apiRef}

/>
</Paper>
</Container>
</>
);
};

export default DataGridPractice;

样本输出 OUTPUT-IMAGE

最佳答案

似乎没有从 datagrid 启用 apiRef 属性,我不确定这是否是一个错误,因为 apiRef 类型被强制为未定义,或者其他许可证版本的功能。对于这个用例,有一个 hack 可能对您有用: Attaching apiRef

关于datagrid - TypeError : apiRef. current.updateRows 不是 Material ui 数据网格中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68033888/

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