添加删除按钮

时间:2020-07-31 08:40:03

标签: javascript reactjs react-bootstrap react-bootstrap-table

我创建了一个搜索应用程序,用户可以在其中搜索电影,它将显示在表格中。但是,我希望每个电影行的最后一列中的删除按钮可以从表中删除电影。我无法做到这一点。有人可以帮助我如何在最后一栏中添加该删除按钮吗?我已经创建了deleteMovie动作和reducers。我只是不确定如何将其添加到表中。我尝试按照他们在docs中所说的去做,但是对我来说不起作用

import React from "react";
import PropTypes from "prop-types";
import { connect } from "react-redux";
import { deleteMovie } from "../action/movieActions";
import "react-bootstrap-table-next/dist/react-bootstrap-table2.min.css";
import BootstrapTable from "react-bootstrap-table-next";
const MovieTable = ({ data, deleteMovie }) => {
  console.log(data);
  const columns = [
    {
      dataField: "movieId",
      text: "ID",
      sort: true
    },
    {
      dataField: "name",
      text: "Name",
      sort: true
    },
    {
      dataField: "year",
      text: "Year",
      sort: true
    },
    {
      dataField: "Delete",
      title: "delete",
      text: "Delete",
       events: {
        onClick: () => deleteMovie(data.movieId)//tried this but didn't work
     }
    }
  ]
  return (
    <div className="col m4">
      <BootstrapTable keyField="id" data={data} columns={columns} />
    </div>
  );
};

MovieTable.propTypes = {
  deleteMovie: PropTypes.func.isRequired
};

export default connect(
  null,
  { deleteMovie }
)(MovieTable);

2 个答案:

答案 0 :(得分:1)

这样,您可以在列上添加点击事件。

首先,您必须创建一个挂钩或返回按钮(删除按钮)的组件,然后将产品ID作为参数传递给该挂钩或组件。

您将创建的钩子/组件必须在数据数组上调用!

答案 1 :(得分:0)

选择器data.movieId无效,数据变量是包含数组的对象。像这样选择movieId

{
    dataField: "movieId",
    formatter: (rowContent, row) => {
        return (
          <button onClick={() => deleteMovie(data[0].movieId)}>delete</button>
        );
    }
}