小编Biz*_*MAN的帖子

使用 useReducer 在两个组件之间共享状态

尝试将状态从一个组件共享到另一个组件:可以从主组件访问状态,但从新组件访问时状态未定义 这是我的减速器:

export const  tableReducer=(state = [], action)=> {
    switch (action.type) {
        case 'SELECTED_LIST':
            state = JSON.parse(JSON.stringify(action.payload));
            return state;
        default:
            return state
    }
}
Run Code Online (Sandbox Code Playgroud)

从不同的文件访问它:

const [userList, usersDispatch] = useReducer(tableReducer, []);

useEffect(() => {
            const list = Object.keys(selectedRowIds).length > 0 ? selectedFlatRows.map(
                    d => d.original.email
                )
             : '';
            usersDispatch({ type: 'SELECTED_LIST', payload: list, });
    
        }, [selectedRowIds, selectedFlatRows]);
Run Code Online (Sandbox Code Playgroud)

并在一个新组件中:

const [userList] = useReducer(tableReducer);

    const deleteUsers = () => {
        console.log(userList)
    }
Run Code Online (Sandbox Code Playgroud)

但这里的console.log(userList)结果是undefined

reactjs

4
推荐指数
3
解决办法
2154
查看次数

切换从反应表中的按钮组件中选择所有行

需要选择所有行而不使用表 API 中可用的复选框触发器。我想将此触发器放入一个单独的组件中,而不是文档中的组件,其中表列之一是全选触发器。

沙盒游乐场:https://codesandbox.io/s/test-select-all-button-toggle-33c3g ?file=/src/App.js

尝试检查文档https://react-table-omega.vercel.app/docs/api/useRowSelect#instance-properties上的选项可能是一个很好的指针,但我还没有弄清楚如何将其付诸实践。

并将其放入组件中,如下所示:

<IconHolder
  onClick={toggleAllRows} //trigger select all rows here
>
  <Text>
    <Icon
      actionIcon
      name={true ? "ok-circled2" : "circle-thin"}
      color={globalColors.purple}
      size={20}
    />{" "}
    Select All
  </Text>
</IconHolder>
Run Code Online (Sandbox Code Playgroud)

reactjs react-table

1
推荐指数
1
解决办法
9511
查看次数

标签 统计

reactjs ×2

react-table ×1