Closed zhulichao closed 7 years ago
@zhulichao 具体是什么问题,麻烦列举一下
以下问题都是在最外层是TabBar,在第二个TarBar.Item中是Tabs组件,在这里发现的问题。 1、Drawer、Popup 在Tabs里非第一个TabPane的时候失效,无法弹出,会返回第一个TabPane 2、Progress在Tabs里非第一个TabPane的时候,修改进度值回到第一个TabPane页 3、ActionSheet 在Tabs里时弹出会回到第一个TabPane页,然后进入了其它TabBar的Item,原来所在的那个TabBar.Item就像被卸载了一样点击也没反映
因为问题不是很好描述,所以我提供了可运行的代码,跑一下就能看到。我这里给一下第一个问题的截图。
@zhulichao 你这种情况 tabs 要指定 activeKey 的, 否则其他 state 一改变, render 重新执行了,就回到第一个 tab 标签了
<Tabs activeKey={this.state.activeKey} onChange={(key) => this.setState({ activeKey: key })} />
我添加上activeKey了,Modal没有问题了,其它问题更新如下: 1、Drawer 在Tabs里非第一个TabPane的时候没有弹出 2、Progress在Tabs里时没有显示出来 3、Popup 、ActionSheet 弹出后点击在点击其它地方,弹出框收回,但是然后进入了其它TabBar的Item,原来所在的那个TabBar.Item就像被卸载了一样点击也没反映
@zhulichao Progress 没出来是因为 Progress 需要由外层容器的大小来决定 Progress 的大小的, 比如外层外层嵌套一个 View ,给个高度就可以了; 至于 Drawer 不能弹出的问题,是使用问题,应该是 Tabs 放在 Drawer 里,而不应该是 Drawer 放在 tabs.pane 里吧(至少至今我没见过这种使用方式)
我刚才把TabPane中的第一层从View改成ScrollView后Progress就出来了,也试了按照您的意思在Progress外包一层View给heigth属性也能显示。非常感谢您的回答。
嗯, 至于跳出 tabbaritem 的问题,android 的 tabbar 是模拟 iOS 的,可能是 actionsheet 引起什么潜在问题,我这边还在进一步排查
又发现个问题,在TabBar的Item里面显示Toast提示时,如点击按钮显示Toast,Toast没有出现,而且就像ActionSheet似地,当前页面没有了,进入了TabBar的其它Item,点击页面无反映了。
Toast、ActionSheet 这几个 api 形式的组件由于 rn 没有 document.body.append 之类的,是用的模拟方法,有可能跟这个有关系,如果使用紧急的话,先使用对应的纯 component 组件来自己实现,见:
antd-mobile/lib/action-sheet/AndroidContainer.js
antd-mobile/lib/action-sheet/ToastContainer.js
好的,谢谢啦。
@zhulichao 问题已经解决了,android 的 tab-bar 是利用 zIndex 实现的,toast\action-sheet\popup 在隐藏的时候会打乱页面的 zIndex,等周五的发布
动作非常快,给力!
在使用TabBar和Tabs时,发现Drawer、ActionSheet、Modal、Popup、Progress都有问题。以下是index.android.js的代码,是能够运行的,包含了这几个组件。如果可以请看一下是我哪里写的不对还是怎么回事,非常感谢。