React+TS动态tab问题

发布于 2022-09-13 00:10:05 字数 1995 浏览 14 评论 0

需求:

 根据后端返回数据动态的生成一、二级Tab以及table表格(所有数据都在一个接口返回),需要实现点击操作开关实时更新数据但是一、二级Tab不要重新渲染,只渲染table表格就好

问题:

如果是在table表格第二页操作开关,重新拉取数据全部重新渲染的话,渲染完成会自动跳回table表格第一页(这里应该还停留在操作页)

代码:

<Tabs>
            {
                changeInfo
                    ? Object.keys(changeInfo).map(i => {
                        return <TabPane tab={i} key={i}>
                            <Tabs>
                                {
                                    changeInfo[i].map((item: any) => {
                                        return <TabPane 
                                            tab={new Date(parseInt(item.checkTime) * 1000).toLocaleString().replace(/:\d{1,2}$/, ' ')} 
                                            key={item.checkTime}
                                        >
                                            <Descriptions column={1}>
                                                <Descriptions.Item label="变更前后时间">{item.previousTime} - {item.followingTime}</Descriptions.Item>
                                                <Descriptions.Item label="检查分支">{item.branch}</Descriptions.Item>
                                            </Descriptions>
                                            <Table 
                                                dataSource={item.items} 
                                                size="small"
                                                columns={columns}
                                            />
                                        </TabPane>;
                                    })
                                }
                            </Tabs>
                        </TabPane>;
                    })
                    : ''
            }
        </Tabs>

样式:
image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

隔纱相望 2022-09-20 00:10:05

不知道理解的对不对,你的需求是table操作开关的时候,一二级菜单保持原来的选中状态,但是操作开关会拉取后端数据,然后重新渲染的时候,一二级菜单就变成了默认的第一个。如果是这样的话,你可以保存选中的那个tab,后续渲染传给Tabs组件
关于第二页变成第一页的问题,不知道你具体实现是什么样,你可以先修复Tabs的选中问题,然后看下table页面是不是还存在

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文