[Bug] 在onCheckboxStateChange回调中修改records中checkbox的disable表格未生效
Version
0.23.1
Link to Minimal Reproduction
https://codesandbox.io/p/devbox/react-vtable-forked-6ctmz2?layout=%257B%2522sidebarPanel%2522%253A%2522EXPLORER%2522%252C%2522rootPanelGroup%2522%253A%257B%2522direction%2522%253A%2522horizontal%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522id%2522%253A%2522ROOT_LAYOUT%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522UNKNOWN%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522cluw8gbvi00073b6kxg8vm5st%2522%252C%2522sizes%2522%253A%255B70%252C30%255D%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522EDITOR%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522EDITOR%2522%252C%2522id%2522%253A%2522cluw8gbvh00023b6kxeqqflj9%2522%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522direction%2522%253A%2522horizontal%2522%252C%2522id%2522%253A%2522SHELLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522SHELLS%2522%252C%2522id%2522%253A%2522cluw8gbvh00043b6kxf1aypny%2522%257D%255D%252C%2522sizes%2522%253A%255B100%255D%257D%255D%257D%252C%257B%2522type%2522%253A%2522PANEL_GROUP%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522direction%2522%253A%2522vertical%2522%252C%2522id%2522%253A%2522DEVTOOLS%2522%252C%2522panels%2522%253A%255B%257B%2522type%2522%253A%2522PANEL%2522%252C%2522contentType%2522%253A%2522DEVTOOLS%2522%252C%2522id%2522%253A%2522cluw8gbvi00063b6khm7jxr8k%2522%257D%255D%252C%2522sizes%2522%253A%255B100%255D%257D%255D%252C%2522sizes%2522%253A%255B50%252C50%255D%257D%252C%2522tabbedPanels%2522%253A%257B%2522cluw8gbvh00023b6kxeqqflj9%2522%253A%257B%2522id%2522%253A%2522cluw8gbvh00023b6kxeqqflj9%2522%252C%2522activeTabId%2522%253A%2522cluwcnv8i003q3b6k0dxfeolm%2522%252C%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cluw8gbvh00013b6k633z5cww%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522FILE%2522%252C%2522filepath%2522%253A%2522%252Fsrc%252Findex.tsx%2522%252C%2522state%2522%253A%2522IDLE%2522%257D%252C%257B%2522type%2522%253A%2522FILE%2522%252C%2522filepath%2522%253A%2522%252F.codesandbox%252Ftasks.json%2522%252C%2522id%2522%253A%2522cluwcnv8i003q3b6k0dxfeolm%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%255D%257D%252C%2522cluw8gbvi00063b6khm7jxr8k%2522%253A%257B%2522id%2522%253A%2522cluw8gbvi00063b6khm7jxr8k%2522%252C%2522activeTabId%2522%253A%2522cluwcvz3k00fk3b6ka2f59c96%2522%252C%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cluw8gbvi00053b6k1e2544p6%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522TASK_PORT%2522%252C%2522taskId%2522%253A%2522dev%2522%252C%2522port%2522%253A5173%252C%2522path%2522%253A%2522%252F%2522%257D%252C%257B%2522type%2522%253A%2522SANDBOX_INFO%2522%252C%2522id%2522%253A%2522cluwcvz3k00fk3b6ka2f59c96%2522%252C%2522mode%2522%253A%2522permanent%2522%257D%255D%257D%252C%2522cluw8gbvh00043b6kxf1aypny%2522%253A%257B%2522tabs%2522%253A%255B%257B%2522id%2522%253A%2522cluw8gbvh00033b6kglois1sx%2522%252C%2522mode%2522%253A%2522permanent%2522%252C%2522type%2522%253A%2522TASK_LOG%2522%252C%2522taskId%2522%253A%2522dev%2522%257D%255D%252C%2522id%2522%253A%2522cluw8gbvh00043b6kxf1aypny%2522%252C%2522activeTabId%2522%253A%2522cluw8gbvh00033b6kglois1sx%2522%257D%257D%252C%2522showDevtools%2522%253Atrue%252C%2522showShells%2522%253Atrue%252C%2522showSidebar%2522%253Atrue%252C%2522sidebarPanelSize%2522%253A15%257D
Steps to Reproduce
1.点击选择第一行 2.将其他行数据的disable修改为true
Current Behavior
我的需求是选择1行以后,禁用其他行 1.点击选择第一行 2.将其他行数据的disable修改为true 3.表格中的checkbox依旧可以选择
Expected Behavior
当records修改以后,表格中的checkbox应该生效
Environment
- OS:macos
- Browser:chrome
- Framework:react
Any additional comments?
No response
sandbox 打不开,恢复一下吧
sandbox 打不开,恢复一下吧
恢复了,另外补充一下如果通过 options.records 传入数据,修改只会生效一次
通过 props 传递,修改不会生效
这里不要改原先的数据,react-vtable 内有一个diff,这么改的话会认为数据没有变化,不会更新,可以用memo或者重新创建一个对象