首页 > 解决方案 > 在 SetState 函数中访问外部参数

问题描述

我无法访问 setState 函数中的 onClick 参数。

   const [tableData, settableData] = useState({ tableDataList: [] });
   
   const deleteRow = (rowId) => {
        settableData(tData => {
         //I have to access rowId to delete row with rowid from tData here
            return tData;
        });
    }

. .

      //This button is inside a table. Present in all rows
      <button className="btn-dark" onClick={() => deleteRow(rowId)}>DELETE</button>

任何人都可以帮助我访问 setState 函数中的 rowId 吗?

标签: reactjs

解决方案


您必须使用 JavaScript 中的普通数组方法进行过滤。一个例子是过滤器方法,它可以帮助您根据您喜欢的过滤方式过滤数组。

以下示例将过滤数组,返回所有项,除了与 rowId 匹配的项,返回一个没有删除项的新数组:

tableData.tableDataList.filter(item => item.id !== rowId) 

完整的示例必须如下所示:

settableData(tData => {
  
  return tData.tableDataList.filter(item => item.id !== rowId);
});

推荐阅读