Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如果调用props函数,则取消选择Datatables选定的行_Reactjs_Datatables - Fatal编程技术网

Reactjs 如果调用props函数,则取消选择Datatables选定的行

Reactjs 如果调用props函数,则取消选择Datatables选定的行,reactjs,datatables,Reactjs,Datatables,我有一个具有以下构造函数的datatable: var table = $('.select-samples-list').DataTable({ paging: false, dom: 'Bfrtip', buttons: [ { text: 'Select all', action: function () {

我有一个具有以下构造函数的datatable:

var table = $('.select-samples-list').DataTable({
            paging: false,
            dom: 'Bfrtip',
            buttons: [
                {
                    text: 'Select all',
                    action: function () {
                        this.popUpperOnChange(table, true);
                    }
                },
                {
                    text: 'Select none',
                    action: function () {
                        this.popUpperOnChange(table, false);
                    }
                }
            ],
            searching: false,
            destroy: true,
            info: false,
            order: [],
            select: {
                style: 'os',
                className: 'selected-experiment-row'
            },
            "columnDefs": [ {
                "targets": 0,
                "data": "download_link",
                "render": function ( data, type, row, meta ) {
                    if (row[0] == '') {
                        return '';
                    } else {
                        return '<a target="_blank" href="https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=' + row[0] + '">' + row[0] + '</a>';
                    }
                }
            }, {
                "targets": 1,
                "data": "download_link",
                "render": function ( data, type, row, meta ) {
                    if (row[0] == '') {
                        return '<a target="_blank" href="https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=' + row[1] + '">' + row[1] + '</a>';
                    } else {
                        return '';
                    }
                } 
            }
            ],
            aoColumns: [
                {sTitle: ' ', sWidth: "100%"},
                {sTitle: 'Name', sWidth: "100%"},
                {sTitle: 'Age', sWidth: "100%"},
                {sTitle: 'Gender', sWidth: "100%"},
                {sTitle: 'Disease', sWidth: "100%"},
                {sTitle: 'Tissue', sWidth: "100%"},
                {sTitle: 'Norm', sWidth: "100%"},
            ],
            data: dataForTable,
        });
最后,我的onAllChange函数是:

       onSelectAll (samples, state, table) {
    let selected = this.state.selected;
    if (state) {
        for(let i = 0; i < samples.length; i++) {
            selected.add(samples[i]);
        }
    } else {
        for(let i = 0; i < samples.length; i++){
            selected.delete(samples[i]);
        }
    }
    this.setState({
        selected: selected
    });
}
onSelectAll(示例、状态、表格){
让选定项=this.state.selected;
如果(州){
for(设i=0;i
我的问题是,当我单击datatables上方的select all/select none按钮时,不会选择行,但父组件状态下的selected字段会更新,并且我可以在console.log中看到结果

在我看来,一定有一些“这种”冲突正在发生,但我不知道如何才能克服这一点。我试着把这个重新绑定到self/that/etc上,但一点效果都没有

感谢您的帮助

       onSelectAll (samples, state, table) {
    let selected = this.state.selected;
    if (state) {
        for(let i = 0; i < samples.length; i++) {
            selected.add(samples[i]);
        }
    } else {
        for(let i = 0; i < samples.length; i++){
            selected.delete(samples[i]);
        }
    }
    this.setState({
        selected: selected
    });
}