native react 二级菜单_ReactNative: 组件封装(如二级菜单组件)

import React, { Component } from 'react';

import {

StyleSheet,

View,

Dimensions

} from'react-native';

import HeadList from'./HeadList'import LeftList from"./LeftList";

import RightList from"./RightList";const {height} = Dimensions.get('window');

let data={};

let headData=[];

let leftData=[];

let rightData=[];

exportdefault classMenuList extends Component{

constructor(props){

super(props);

data=props.data;//初始化头部数据

for (let item indata){

headData.push(item);

}//初始化左侧数据

let defaultLValue = headData[0];for (let item indata[defaultLValue]){

leftData.push(item);

}//初始化右侧数据

let defaultRValue = leftData[0];

rightData=data[defaultLValue][defaultRValue];//初始化state

this.state ={

shouldChangeTab:false,

currentTab: defaultLValue,

leftData : leftData,

rightData : rightData

};

}//函数回调,每次选择头部tab后,重新render

forceUpdateAllUI = (ele) =>{

leftData=[];for (let item indata[ele]){

leftData.push(item);

}

let defaultRValue= leftData[0];

rightData=data[ele][defaultRValue];this.setState({

shouldChangeTab:true,

currentTab: ele,

leftData: leftData,

rightData: rightData

})

};//函数回调,每次选择左侧列表后,重新render

forceUpdateRightListUI = (ele) =>{

rightData= data[this.state.currentTab][ele];this.setState({

shouldChangeTab:false,

rightData: rightData

})

};

render(){return(

shouldChangeTab={this.state.shouldChangeTab}

update={this.forceUpdateRightListUI}/>

)

}

}const style =StyleSheet.create({

container: {

flex:1,

height: height,

borderTopWidth:1,

borderBottomWidth:1,

borderColor:'#ddd'},

top: {

height:60,

borderBottomWidth:1,

borderColor:'#DFDFDF',

backgroundColor:'#F5F5F5'},

bottom: {

height: height-60,

flexDirection:'row',

backgroundColor:'#F5FCFF'}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值