如何解决使用反应表访问组件状态
这是我的第一个问题,我只需要了解为什么在处理传递给react-table useTable钩子的Checkbox中的更改时为什么无法访问组件的实际状态。
const {
getTableProps,getTableBodyProps,headerGroups,rows,prepareRow,}: ITableInstance = useTable(
{
columns: tableColumns,data,},useRowSelect,(hooks: Hooks<any>) => {
hooks.visibleColumns.push((tableColumns) => [
{
id: 'selection',Header: (headerCell: THeaderProps) => (
<Checkbox
{...headerCell.getToggleAllRowsSelectedProps()}
onChange={handleSelectAllRows(headerCell)}
/>
),Cell: ({row}: TCellProps) => (
<Checkbox
{...row.getToggleRowSelectedProps()}
onChange={() => handleSelect((row.original as TSelectableTableRowData).selectionValue)}
/>
),...tableColumns,]);
}
);
这是我的Table组件状态和更改时的回调:
const [selected,setSelected] = React.useState<string[]>([]);
const handleSelect = (selectedValue: string) => {
setSelected(selected.concat([selectedValue])); // When I reach here,state is always = [],but it must have one item,when I check second checkbox.
};
似乎每个复选框事件处理程序都使用其自己的反应状态。有什么想法为什么会那样吗?谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。