React Native 开发过程中遇到的问题

问题1:

View嵌套ScrollView时,ScrollView不能滚动。

View嵌套ListView时,ListView不能滚动。

react native scrollview inside View doesn't scroll.

react native ListVIew inside View doesn't scroll.

解决方案:

render(){return(中的根节点往往是View,而其内嵌套一个ScrollView发现无法滚动,此时检查根节点View的style必须要有flex: 1,这个样式。


问题2:

每层的Component都实现响应返回键事件,导致连续响应。

解决方案:

如果当前页是第二页,那么通过navigator.getCurrentRoutes().length > 2判断,如果true则,return false。即不拦截。因为当前是第二页,所以length是不会超过2的。但第三页不是执行了navigator.pop()了吗,所以第三页返回后,navigator.getCurrentRoutes().length 应该等于 2,但事实不是这样。事实navigator.getCurrentRoutes().length 还是等于3.


问题3:

Navigator中route是个什么对象?

回答:

Navigator是一个数组,所以会有添加数组元素的push()方法,移除数组最后元素的pop()方法,复制数组的slice()方法,返回元素索引的indexOf('name')方法,

JavaScript Array说明

而,所谓的route对象就是Navigator的元素,其实是一个JSON对象。

也就是:navigator = [ {name : 'andy',age : 12},{name : 'david',age : 13} ]

所以route是一个JSON对象,内部字段遵从JSON规范,所以并不需要一定要有name字段,或者一定要有index字段,这些字段都是自己定义的字段。

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...