react-native-paper v5中SegmentedButtons的IconSource属性含义咨询
在 React Native Paper v5 中,SegmentedButtons 的 icon 属性对应的 IconSource 并非直接传入你写的 <MaterialIcon name="home" color="black" size={25}/> 这种组件实例,它支持以下几种取值类型:
- 字符串:直接传入 Material Icons 的图标名称(比如
"home"),组件会自动使用内置的 MaterialIcon 组件渲染,颜色、尺寸会继承 SegmentedButtons 的全局样式配置,无需手动指定。 - React 组件/组件函数:可以传入自定义图标组件,或者返回组件的函数。比如你写的那种 MaterialIcon 实例,就可以通过函数返回的方式传入,这样能手动控制图标颜色、尺寸等属性。
- 图片源:还可以传入本地图片的路径或网络图片 URL,用于渲染自定义图标图片。
举几个实用示例:
// 最常用:传入图标名称字符串 <SegmentedButtons buttons={[ { value: 'home', icon: 'home' }, { value: 'settings', icon: 'settings' } ]} /> // 传入自定义组件(通过函数返回) <SegmentedButtons buttons={[ { value: 'custom', icon: () => <MaterialIcon name="home" color="black" size={25}/> } ]} /> // 传入本地图片 <SegmentedButtons buttons={[ { value: 'local', icon: require('../assets/custom-icon.png') } ]} />
简单总结:你写的组件实例不能直接传,但可以用函数返回的方式传入;日常开发更推荐直接传图标名称字符串,让组件自动适配样式。
内容的提问来源于stack exchange,提问作者chris aimsworth
相关产品推荐
相关产品推荐

