jQuery Datatable按钮未显示在React js上

Ike*_*alu 8 javascript jquery datatables reactjs

我在我的react应用程序中初始化了Jquery Datatables,它工作得很好,除了按钮没有显示出来。这是我的代码:

我一开始尝试了它,但是它不显示按钮。

import $ from 'jquery';
import JSZip from 'jszip';
window.JSZip = JSZip;

import 'datatables.net-bs4';
import 'datatables.net-responsive';
import 'datatables.net-buttons-bs4';
import 'datatables.net-buttons/js/buttons.colVis';
import 'datatables.net-buttons/js/buttons.html5';
import 'datatables.net-buttons/js/buttons.flash';
import 'datatables.net-buttons/js/buttons.print';
Run Code Online (Sandbox Code Playgroud)

接下来,我也尝试了下面的代码,它引发的错误不允许我的react应用程序呈现。它对此抱怨Uncaught TypeError: Cannot set property '$' of undefined at DataTable

import $ from 'jquery';
const JSZip = require('jszip');
window.JSZip = JSZip;

require('datatables.net')();
require('datatables.net-responsive')();
require('datatables.net-buttons')();
require('datatables.net-buttons/js/buttons.colVis')();
require('datatables.net-buttons/js/buttons.html5')();
require('datatables.net-buttons/js/buttons.print')();
Run Code Online (Sandbox Code Playgroud)

最后,我如何初始化数据表:

var table = $('#dynamic_table').DataTable({
          'lengthChange': false,
          'buttons': [ 'copy', 'excel', 'pdf', 'colvis' ],
});
table.buttons().container().appendTo( '#dynamic_table_wrapper .col-md-6:eq(0)' );
Run Code Online (Sandbox Code Playgroud)

通过React App遇到了一个类似的问题Datatables按钮,但这并不能解决我的问题。没有将按钮导出到excel的按钮,我使用此插件的全部目的就无法实现。我可以帮忙吗?

Ike*_*alu 5

import $ from 'jquery';
import JSZip from 'jszip';
window.JSZip = JSZip;

import 'datatables.net-bs4';
import 'datatables.net-responsive';
import 'datatables.net-buttons-bs4';
import 'datatables.net-buttons/js/buttons.colVis';
import 'datatables.net-buttons/js/buttons.html5';
import 'datatables.net-buttons/js/buttons.flash';
import 'datatables.net-buttons/js/buttons.print';
Run Code Online (Sandbox Code Playgroud)

导入所有依赖项后,就像添加一样简单

"dom": 'Bfrtip'
Run Code Online (Sandbox Code Playgroud)

到我的数据表初始化。

$("#dynamic_table").DataTable({
  "lengthChange": true,
  "dom": 'Bfrtip',
  "buttons": [
    'copyHtml5',
    'excelHtml5',
    'csvHtml5',
    'pdfHtml5'
  ]
});
Run Code Online (Sandbox Code Playgroud)

我摆脱了这条线

table.buttons().container().appendTo( '#dynamic_table_wrapper .col-md-6:eq(0)' );
Run Code Online (Sandbox Code Playgroud)