- scroll-view 设置 scroll-top 问题
我现在有个筛选器,默认是隐藏的,在页面点击某个按钮的时候,要去显示这个筛选器,并定位到上次滚动的位置,我发现只要是一个隐藏的元素,给它设置 scroll-top 就会不生效,如果是个默认 block 元素,设置 scroll-top 才会生效,望官方大大可以看下。 还有,如果我要设置的 scroll-view 放在了一个 slot 里面,对他设置 scroll-top 也是不会生效的
2018-05-03 - 使用 usingComponents 问题
工程里面用到了 redux,在配置文件的中引入 "usingComponents" 后页面数据出现了问题 [代码]"usingComponents"[代码][代码]: {}[代码]mapState 中的 regionIndex 是一个数组类型 [代码]mapState(state) {[代码][代码] [代码][代码]const editingAddress = state.address.editingAddress;[代码][代码] [代码][代码]const regionList = state.address.regionList;[代码][代码] [代码][代码]const regionNameList = regionList.map(region =>[代码][代码] [代码][代码]region.map(item => item.name)[代码][代码] [代码][代码]);[代码][代码] [代码][代码]const regionIndex = state.address.regionIndex;[代码][代码] [代码][代码]const provinces = regionList[0] || [];[代码][代码] [代码][代码]const citys = regionList[1] || [];[代码][代码] [代码][代码]const districts = regionList[2] || [];[代码] [代码] [代码][代码]return[代码] [代码]{[代码][代码] [代码][代码]editingAddress, [代码][代码]//[代码][代码] [代码][代码]regionNameList, [代码][代码]//[代码][代码] [代码][代码]regionList, [代码][代码]//[代码][代码] [代码][代码]provinces,[代码][代码] [代码][代码]citys,[代码][代码] [代码][代码]districts,[代码][代码] [代码][代码]regionIndex, [代码][代码]//[代码][代码] [代码][代码]hasRegion: !!([代码][代码] [代码][代码]regionNameList[0] &&[代码][代码] [代码][代码]regionNameList[0].length > 0 &&[代码][代码] [代码][代码]regionNameList[1] &&[代码][代码] [代码][代码]regionNameList[1].length > 0 &&[代码][代码] [代码][代码]regionNameList[2] &&[代码][代码] [代码][代码]regionNameList[2].length > 0 &&[代码][代码] [代码][代码]regionIndex[0] > -1 &&[代码][代码] [代码][代码]regionIndex[1] > -1 &&[代码][代码] [代码][代码]regionIndex[2] > -1[代码][代码] [代码][代码]), [代码][代码]//[代码][代码] [代码][代码]isUpdateView: state.address.view === state.address.views.UPDATE,[代码][代码] [代码][代码]// ↑ 控制地址的信息[代码][代码] [代码][代码]};[代码][代码] [代码][代码]},[代码][代码]const mapState = ctx.mapState;[代码][代码]const mapStateFn = () => {[代码][代码] [代码][代码]const state = store.getState();[代码][代码] [代码][代码]const mappedData = mapState.call(ctx, state);[代码] [代码] [代码][代码]if[代码] [代码](mappedData) {[代码][代码] [代码][代码]const diffed = diff(mappedData, ctx.data);[代码][代码] [代码][代码]ctx.setData(clone(diffed));[代码][代码] [代码][代码]// ctx.setData(mappedData);[代码][代码] [代码][代码]}[代码][代码]};[代码]上面 mapStateFn 中的 mappedData 是由上面 mapState 返回的 object 对象,ctx.data 是当前页面的 data。正常情况下,ctx.data 中的 regionIndex 数据变化会比 mappedData 慢一拍,但是加入 usingComponents 后,每次操作这两个值都是一样的,导致 diffed 找不出变化数据而使页面没有发生变化。 但是对 diffed 做一个 clone 之后,就是正常表现了,所以怀疑是不是加入 usingComponents 后,setData 方法没做类似 clone 的操作,因为操作的是引用类型,导致这两个值都指向了一个地方。 望各位大大可以帮忙看看~
2018-02-09