11import { View , Text , StyleSheet , TouchableHighlight , StyleProp , TextStyle , ViewStyle } from 'react-native' ;
2- import React , { Component } from 'react' ;
2+ import React , { Component , ReactNode } from 'react' ;
33import { Picker } from '@react-native-picker/picker' ;
44import arrayTreeFilter from '../utils/arrayTreeFilter' ;
55import Modal from '../Modal' ;
@@ -23,6 +23,12 @@ export interface SelectCascaderProps {
2323 dismissText ?: string ;
2424 /** 确定button文字 */
2525 okText ?: string ;
26+ /** 自定义取消元素 */
27+ renderDismissNode : React . ReactNode ;
28+ /** 自定义标题元素 */
29+ renderTitleNode : React . ReactNode ;
30+ /** 自定义确定元素 */
31+ renderOkNode : React . ReactNode ;
2632 /** 选中的值 */
2733 value ?: SelectCascaderValue ;
2834 /** 选中时执行此回调 */
@@ -202,7 +208,16 @@ export default class SelectCascader extends Component<SelectCascaderProps, Istat
202208 onDismiss,
203209 headerStyle,
204210 maskClosable,
211+ renderDismissNode,
212+ renderTitleNode,
213+ renderOkNode,
205214 } = this . props ;
215+ // /** 自定义取消元素 */
216+ // renderDismissNode: React.ReactNode;
217+ // /** 自定义标题元素 */
218+ // renderTitleNode: React.ReactNode;
219+ // /** 自定义确定元素 */
220+ // renderOkNode: React.ReactNode;
206221 const cols = this . getCols ( ) ;
207222 return (
208223 < Modal
@@ -219,18 +234,16 @@ export default class SelectCascader extends Component<SelectCascaderProps, Istat
219234 onPress = { onDismiss }
220235 style = { [ styles . headerItem ] }
221236 >
222- < Text > { dismissText } </ Text >
237+ { renderDismissNode ?? < Text > { dismissText } </ Text > }
223238 </ TouchableHighlight >
224- < View style = { [ styles . headerItem ] } >
225- < Text > { title } </ Text >
226- </ View >
239+ < View style = { [ styles . headerItem ] } > { renderTitleNode ?? < Text > { title } </ Text > } </ View >
227240 < TouchableHighlight
228241 activeOpacity = { activeOpacity }
229242 underlayColor = { underlayColor }
230243 onPress = { this . onOk }
231244 style = { [ styles . headerItem ] }
232245 >
233- < Text > { okText } </ Text >
246+ { renderOkNode ?? < Text > { okText } </ Text > }
234247 </ TouchableHighlight >
235248 </ View >
236249 < View style = { styles . list } > { cols } </ View >
0 commit comments