Material ui 将useApiRef添加到组件时,材质ui XGrid停止渲染 从“React”导入React; 从“../hooks/UtilityHooks/useTable”导入{useTable}; 从“@material ui/x-grid”导入{XGrid,useApiRef}; const仪表板:React.FC=()=>{ const[state,setState]=React.useState([]); const form=useForm(state,setState); const productionTable=useTable('Production',form); 常量[loading,setLoading]=React.useState(false); const tableRef=useApiRef(); React.useffect(()=>{ (异步()=>{ 试一试{ 设置加载(真) const data=await get();`正在此处提取数据` 设置状态(数据); 设置加载(错误) }捕捉(错误){ 设置加载(错误) } })() }, []) 返回( ) } 导出默认仪表板;
1/10刷新表进行渲染。但是9/10我必须通过点击屏幕来触发渲染 在useTable中,我需要运行一个函数来设置列以及其他内容。 它做得非常好,直到我添加useApiRef以订阅列重新排序更改等,以使用新的colorder/colwidth等设置一些用户状态; 当我注销ref时,我可以看到数据和列都在那里,但是视图没有相应地更新Material ui 将useApiRef添加到组件时,材质ui XGrid停止渲染 从“React”导入React; 从“../hooks/UtilityHooks/useTable”导入{useTable}; 从“@material ui/x-grid”导入{XGrid,useApiRef}; const仪表板:React.FC=()=>{ const[state,setState]=React.useState([]); const form=useForm(state,setState); const productionTable=useTable('Production',form); 常量[loading,setLoading]=React.useState(false); const tableRef=useApiRef(); React.useffect(()=>{ (异步()=>{ 试一试{ 设置加载(真) const data=await get();`正在此处提取数据` 设置状态(数据); 设置加载(错误) }捕捉(错误){ 设置加载(错误) } })() }, []) 返回( ) } 导出默认仪表板;,material-ui,Material Ui,1/10刷新表进行渲染。但是9/10我必须通过点击屏幕来触发渲染 在useTable中,我需要运行一个函数来设置列以及其他内容。 它做得非常好,直到我添加useApiRef以订阅列重新排序更改等,以使用新的colorder/colwidth等设置一些用户状态; 当我注销ref时,我可以看到数据和列都在那里,但是视图没有相应地更新 看起来您正试图持久化用户对表的更改。你有没有想过怎么做?我希望对x-grid也这样做,并且需要将用户更改保存到数据库中,以便将来呈现表。看起来您正在尝试持久化用户对表的
看起来您正试图持久化用户对表的更改。你有没有想过怎么做?我希望对x-grid也这样做,并且需要将用户更改保存到数据库中,以便将来呈现表。看起来您正在尝试持久化用户对表的更改。你有没有想过怎么做?我希望对x-grid也能做到这一点,并且需要将用户更改保存到数据库中,以便将来呈现表。
import React from 'react';
import { useTable } from '../hooks/UtilityHooks/useTable';
import { XGrid, useApiRef} from '@material-ui/x-grid';
const Dashboard: React.FC = () => {
const [state, setState] = React.useState([]);
const form = useForm(state, setState);
const productionTable = useTable('Production', form);
const [loading, setLoading] = React.useState(false);
const tableRef = useApiRef();
React.useEffect(() => {
(async() => {
try{
setLoading(true)
const data = await get(); `Fetching data here`
setState(data);
setLoading(false)
}catch(err){
setLoading(false)
}
})()
}, [])
return (
<React.Fragment>
<GridContainer style={{height: "calc(100vh - 170px)", overflowY: "auto", padding: "10px"}}>
<GridItem>
<XGrid
apiRef={tableRef}
columns={productionTable.columns}
rows={state}
loading={loading}
pagination={true}
rowsPerPageOptions={[15,25,50]}
pageSize={15}
/>
</GridItem>
</GridContainer>
</React.Fragment>
)
}
export default Dashboard;