2016-06-22 4 views
2

ReactJSでMaterial UI Tableを使用していて、行が選択/選択解除されたときはいつでも状態変数を変更したいと考えています。プロコールコールバックは返されませんか?

<Table 
    height='300px' 
    fixedHeader={true} 
    multiSelectable={true} 
    showRowHover={true} 
    onRowSelection={this.handleRowSelection.bind(this)} 
> 

IはonRowSelection支柱に渡す次の関数た:これは正常状態を設定

handleRowSelection(selectedRows) { 
    let contactsImport = []; 

    if (selectedRows === 'all') { 
    contactsImport = this.state.contacts.new; 
    } else if (selectedRows !== 'none') { 
    selectedRows.forEach((index) => { 
     contactsImport.push(this.state.contacts.new[index]); 
    }); 
    } 

    this.setState({ 
    contactsImport:contactsImport 
    }); 
} 

が、しかし、それは表の行を防止Tableは、行が選択されるたびにトリガされるonRowSelectionを有します選択が正しく機能していない。私が行をクリックすると、チェックボックスはチェックされません。チェックしていると思われます。

setStateへの呼び出しを削除すると、問題が解決されるため、setStateはコールバックが正しく戻るのを防ぎますか?これはMaterial UIのバグでしょうか?

答えて

2

プログラムで制御する場合は、単一行コンポーネントのselectedプロパティを状態から管理する必要があります。 selectedのプロパティはデフォルトでfalseです。したがって、再レンダリングがsetStateで発生すると、false

にリセットされます。
関連する問題