React Redux onDeleteClick不是函数

布迪米尔

我正在使用react-bootstrap-table在React中实现表。我的问题是onDeleteClick方法。在下面的示例中,此功能正常运行。

const StorehouseListTest = ({ storehouses, onDeleteClick }) => (
  <table className="table">
    <thead>
      <tr>
        <th />
        <th>Name</th>
        <th>Action</th>
      </tr>
    </thead>
    <tbody>
      {storehouses.map(storehouse => {
        return (
          <tr key={storehouse.id}>
            <td>
              <Link to={"/skladiste/" + storehouse.slug}>{storehouse.storehouse_name}</Link>
            </td>
            <td>
            <button
                className="btn btn-outline-danger"
                onClick={() => onDeleteClick(storehouse)}
              >
                Delete
              </button>
            </td>
          </tr>
        );
      })}
    </tbody>
  </table>
);

但是,在下面的代码中,当我想将onDeleteClick包含在actionsLink按钮中时,我会使用react-bootstrap-table-next,当按下按钮时,我会收到错误消息“ onDeleteClick不是函数”。

import React from "react";
import PropTypes from "prop-types";

import BootstrapTable from 'react-bootstrap-table-next';
import ToolkitProvider, { Search } from 'react-bootstrap-table2-toolkit';
import paginationFactory from 'react-bootstrap-table2-paginator';

const { SearchBar } = Search;

function actionsLink(cell, row) {
  return (
    <div>
            <div className="btn-group">
              <a
                href={"/skladiste/" + row.slug}
                className="btn btn-md btn-outline-success icon-btn borderless"
              >
                <i className="ion ion-md-search"></i>
              </a>          
              <button
                className="btn btn-outline-danger"
                onClick={() => this.onDeleteClick(row.slug)}
              >
                Delete
              </button>
            </div>
          </div>

  );
}

const columns =  [
    {
        dataField: "id",
        text: "ID"
    },
    {
        dataField: "storehouse_name",
        text: "Storehouse name"
    },
    {
        dataField: "available",
        text: "Available"
    },
    {
        dataField: "id",
        text: "Actions"
        formatter: actionsLink
    }
]

const StorehouseList = ({ storehouses, onDeleteClick }) => (
    <>
        <ToolkitProvider
        keyField="id"
        data={ storehouses } 
        columns={ columns } 
        search
        >
        {props => (
            <div>
                <SearchBar { ...props.searchProps } />
                <hr />
                <BootstrapTable
                    {...props.baseProps}
                    keyField="id"
                    bootstrap4
                    striped
                    hover
                    pagination={paginationFactory()}
                />
            </div>
            )
        }
        </ToolkitProvider>
    </>
);

StorehouseList.propTypes = {
  storehouses: PropTypes.array.isRequired,
  onDeleteClick: PropTypes.func.isRequired
};

export default StorehouseList;

有人对如何解决这个问题有建议吗?

里克

actionsLink不能使用,this.onDeleteClick因为它仅传递给StorehouseList

看起来好像react-bootstrap-table2-toolkit可以将额外的数据传递给格式化程序,因此您可以通过onDeleteClickactionsLink其包括为列格式化程序的额外数据来传递给您

请注意,您需要在其中定义列StorehouseList才能使用onDeleteClick传递给它的:

const StorehouseList = ({ storehouses, onDeleteClick }) => {
    const columns =  [
        ...
        {
            dataField: "id",
            text: "Actions"
            formatter: actionsLink,
            formatExtraData: { onDeleteClick },
        }
    ];

    return (
        <ToolkitProvider
            ...
    )
]

然后actionsLink使用第四个参数获取formatExtraData.onDeleteClick

function actionsLink(cell, row, rowIndex, formatExtraData) {
    ...
        <button
            ...
            onClick={() => formatExtraData.onDeleteClick(row.slug)}
            ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React Redux-props.createMovie不是函数

来自分类Dev

TypeError:firestore.collection不是函数(React,Redux,Firestore)

来自分类Dev

react-redux-firebase firestore返回函数而不是对象

来自分类Dev

React Redux-> TypeError:对象(...)不是一个函数

来自分类Dev

javascript react-redux 函数

来自分类Dev

TypeError:Object(...)不是函数-无法在React中将Redux与包装器函数连接

来自分类Dev

React + Redux - Reducer 子状态不是对象?

来自分类Dev

在React Native Redux中分派导入的函数

来自分类Dev

React/Redux 中的 Javascript 函数语法

来自分类Dev

函数不传入参数 - React Redux

来自分类Dev

React 钩子、函数组件和 Redux

来自分类Dev

“ TypeError:对象(...)不是一个函数” react-redux-firebase

来自分类Dev

react-redux useSelector告诉“未捕获的TypeError:Object(...)不是函数”

来自分类Dev

如何在react-redux中修复“ TypeError:this.props.messages.map不是函数”

来自分类Dev

React-Redux-Dispatch Action Error,this.props.mostrarProduto不是一个函数

来自分类Dev

React Redux - 获取组件状态 - 未捕获的 TypeError:users.map 不是函数

来自分类Dev

_this2.props.signup 不是 React Redux 应用程序中的函数

来自分类Dev

React和Redux:用HTML标签包装React Map函数

来自分类Dev

react-redux中分派函数后的回调函数

来自分类Dev

在React Redux中保存所选日期而不是utc日期

来自分类Dev

react-redux嵌套组件不是父类中的ReactClass?

来自分类Dev

React Redux - undefined 不是评估 this.props.navigation.navigate 的对象

来自分类Dev

“state.set 不是函数”作为我的 react-redux-immutable 学习曲线的一部分

来自分类Dev

了解react-redux中connect()函数的语法

来自分类Dev

React-Redux:在map函数内部传递事件处理

来自分类Dev

在 react-redux 中定义函数的工作很奇怪

来自分类Dev

使用 React 导航 goBack() 函数管理 Redux 状态

来自分类Dev

在 react redux 中调用嵌套组件上的函数

来自分类Dev

React .trim() 不是函数

Related 相关文章

  1. 1

    React Redux-props.createMovie不是函数

  2. 2

    TypeError:firestore.collection不是函数(React,Redux,Firestore)

  3. 3

    react-redux-firebase firestore返回函数而不是对象

  4. 4

    React Redux-> TypeError:对象(...)不是一个函数

  5. 5

    javascript react-redux 函数

  6. 6

    TypeError:Object(...)不是函数-无法在React中将Redux与包装器函数连接

  7. 7

    React + Redux - Reducer 子状态不是对象?

  8. 8

    在React Native Redux中分派导入的函数

  9. 9

    React/Redux 中的 Javascript 函数语法

  10. 10

    函数不传入参数 - React Redux

  11. 11

    React 钩子、函数组件和 Redux

  12. 12

    “ TypeError:对象(...)不是一个函数” react-redux-firebase

  13. 13

    react-redux useSelector告诉“未捕获的TypeError:Object(...)不是函数”

  14. 14

    如何在react-redux中修复“ TypeError:this.props.messages.map不是函数”

  15. 15

    React-Redux-Dispatch Action Error,this.props.mostrarProduto不是一个函数

  16. 16

    React Redux - 获取组件状态 - 未捕获的 TypeError:users.map 不是函数

  17. 17

    _this2.props.signup 不是 React Redux 应用程序中的函数

  18. 18

    React和Redux:用HTML标签包装React Map函数

  19. 19

    react-redux中分派函数后的回调函数

  20. 20

    在React Redux中保存所选日期而不是utc日期

  21. 21

    react-redux嵌套组件不是父类中的ReactClass?

  22. 22

    React Redux - undefined 不是评估 this.props.navigation.navigate 的对象

  23. 23

    “state.set 不是函数”作为我的 react-redux-immutable 学习曲线的一部分

  24. 24

    了解react-redux中connect()函数的语法

  25. 25

    React-Redux:在map函数内部传递事件处理

  26. 26

    在 react-redux 中定义函数的工作很奇怪

  27. 27

    使用 React 导航 goBack() 函数管理 Redux 状态

  28. 28

    在 react redux 中调用嵌套组件上的函数

  29. 29

    React .trim() 不是函数

热门标签

归档