[] // 当前选择的是每一级的每一项,如[1, 0],第一级的第2项,第二级的第一项
}
this.close = this.close.bind(this) // 指定this
this.ok = this.ok.bind(this) // 指定this
}
close () { // 取消按钮事件
this.props.onClose && this.props.onClose()
}
ok () { // 确认按钮事件
this.props.onOk && this.props.onOk(this.state.indexs)
}
onChange () { // 选项变化的回调函数
}
renderItems () { // 拼装选择项组
}
render() {
return (
<View
style={styles.box}>
<TouchableOpacity
onPress={this.close}
style={styles.bg}>
<TouchableOpacity
activeOpacity={1}
style={styles.dialogBox}>
<View style={styles.pickerBox}>
{this.renderItems()}
</View>
<View style={styles.btnBox}>
<TouchableOpacity
onPress={this.close}
style={styles.cancelBtn}>
<Text
numberOfLines={1}
ellipsizeMode={"tail"}
style={styles.cancelBtnText}>取消</Text>
</TouchableOpacity>
<TouchableOpacity
onPress={this.ok}
style={styles.okBtn}>
<Text
numberOfLines={1}
ellipsizeMode={"tail"}
style={styles.okBtnText}>确认</Text>
</TouchableOpacity>
</View>
</TouchableOpacity>
</TouchableOpacity>
</View>
)
}
}
选择项组的拼装是核心功能,单独提出一个函数(renderItems)来,方便管理和后期维护
renderItems () { // 拼装选择项组
const items = []
const { options = [], indexs = [] } = this.state
const re = (arr, index) => { // index为第几级
if (arr && arr.length > 0) {
const childIndex = indexs[index] 关键词:如何封装一个React Native多级联动(代码完成)