実現したいこと
Material React Table V3.2.0を使用しているテーブルのオプションにenableRowSelection: trueに設定。
これにより表示されるチェックボックスのチェンジイベントでサーバー処理を行おうとした手前
そもそも、チェックボックスにチェックがつかない事象が発生しました。
HTMLの動きをみると、再描画の更新が走っていないことがわかりました。
特にコンソール上エラーは発生していません。
該当のソースコード
下記ソースコードよりヒントを頂ければ嬉しいです
tsx
1'use client' 2 3import React, { useState, useCallback , useRef } from 'react'; 4import { 5 MaterialReactTable, 6 useMaterialReactTable, 7 type MRT_Row, 8 type MRT_TableInstance, 9} from 'material-react-table'; 10 11const data = [ // サンプルデータ 12 { id: 1, name: 'John Doe', age: 25 }, 13 { id: 2, name: 'Jane Doe', age: 30 }, 14 { id: 3, name: 'Peter Pan', age: 18 }, 15]; 16 17const App = () => { 18 const [rowSelection, setRowSelection] = useState({}); 19 20 const handleCheck = useCallback( 21 (row: MRT_Row<any>, table: MRT_TableInstance<any>, checked: boolean) => { 22 console.log("Event:",row); 23 24 const newSelection = { ...rowSelection}; 25 newSelection[row.id] = checked; 26 27 console.log("RowSelection:",rowSelection); 28 console.log("NewSelection:",newSelection); 29 30 setRowSelection(newSelection);// ここで再描画されることを期待してる 31 }, 32 [rowSelection], 33 ); 34 35 const columns = [ // カラム定義 36 { 37 accessorKey: 'name', 38 header: 'Name', 39 }, 40 { 41 accessorKey: 'age', 42 header: 'Age', 43 }, 44 ]; 45 46 const table = useMaterialReactTable({ 47 columns, 48 data, 49 enableRowSelection: true, // 行選択機能を有効にする 50 muiSelectCheckboxProps: (props) => ({ 51 onChange: (event, checked) => { 52 handleCheck(props.row, props.table, checked); 53 }, 54 }), 55 }); 56 57 return ( 58 <MaterialReactTable table={table} /> 59 ); 60}; 61 62export default App;
補足情報(FW/ツールのバージョンなど)
material-react-table: ^3.2.0
@mui/material: ^6.1.8
@mui/material-nextjs: ^6.1.8

あなたの回答
tips
プレビュー