@uiw/react-native
Version:
UIW for React Native
140 lines (127 loc) • 5.18 kB
Markdown
NoticeBar 通告栏
---
在导航栏下方,一般用作系统提醒、活动提醒等通知。
### 基础示例
```jsx mdx:preview&background=#bebebe29
import React from 'react';
import { Image,View,Text } from 'react-native'
import NoticeBar from '@uiw/react-native/lib/NoticeBar';
import Spacing from '@uiw/react-native/lib/Spacing';
const NoticeBarExample = () => {
const customIcon = (
<Image
source={{
uri: 'https://zos.alipayobjects.com/rmsportal/bRnouywfdRsCcLU.png',
}}
style={{ width: 12, height: 12 }}
/>
)
return (
<View style={{ marginTop: 10 }}>
<NoticeBar
onPress={() => console.log('click')}
marqueeProps={{ loop: true, style: { fontSize: 12, color: 'red' } }}>
Notice: The arrival time of incomes and transfers of Yu 'E Bao will be
delayed during National Day.
</NoticeBar>
<Spacing />
<NoticeBar mode="closable" onPress={() => console.log('will close')}>
Notice: The arrival time of incomes and transfers of Yu 'E Bao will be
delayed during National Day.
</NoticeBar>
<Spacing />
<NoticeBar mode="closable" icon={customIcon}>
Customized icon.
</NoticeBar>
<Spacing />
<NoticeBar mode="link" onPress={() => console.log('link')}>
Notice: The arrival time of incomes and transfers of Yu 'E Bao will be
delayed during National Day.
</NoticeBar>
<Spacing />
<NoticeBar mode="closable" icon={undefined}>
Remove the default icon.
</NoticeBar>
<Spacing />
<NoticeBar
mode="closable"
action={<Text style={{ color: '#a1a1a1' }}>不再提示</Text>}>
Closable demo for `actionText`.
</NoticeBar>
<Spacing />
<NoticeBar mode="link" action={<Text>去看看</Text>}>
Link demo for `actionText`.
</NoticeBar>
<Spacing />
<NoticeBar
textStyle={{color: 'blue', fontSize: 20}}
style={{backgroundColor: 'lightblue', height: 50}}>
Change demo for `action`.
</NoticeBar>
</View>
)
}
export default NoticeBarExample;
```
### 设置图标
```jsx mdx:preview&background=#bebebe29
import React from 'react';
import { Image,View,Text } from 'react-native'
import NoticeBar from '@uiw/react-native/lib/NoticeBar';
import Spacing from '@uiw/react-native/lib/Spacing';
import Icon from '@uiw/react-native/lib/Icon';
const NoticeBarExample = () => {
return (
<View style={{ marginTop: 10 }}>
<NoticeBar mode="link" icon={<Icon name="apple" size={15} />} onPress={() => console.log('link')}>
: 春节放假时间为30天,请务必关好门窗,断开所有电源!
</NoticeBar>
<Spacing />
<NoticeBar mode="link" icon={<Icon name="alipay" size={15} />} onPress={() => console.log('link')}>
: 即今日2月20日开始,停水40天!请知悉。
</NoticeBar>
<Spacing />
<NoticeBar mode="link" icon={<Icon name="baidu" size={15} />} onPress={() => console.log('link')}>
: 告诉大家一个‘幸福’的好消息,我们退休将延迟至65岁!!
</NoticeBar>
</View>
)
}
export default NoticeBarExample;
```
### 设置通告栏样式和文字样式
```jsx mdx:preview&background=#bebebe29
import React from 'react';
import { Image,View,Text } from 'react-native'
import NoticeBar from '@uiw/react-native/lib/NoticeBar';
import Spacing from '@uiw/react-native/lib/Spacing';
import Icon from '@uiw/react-native/lib/Icon';
const NoticeBarExample = () => {
return (
<View style={{ marginTop: 10 }}>
<NoticeBar mode="link" style={{backgroundColor:'#fff'}} textStyle={{color:'orange'}} onPress={() => console.log('link')}>
通知: 春节放假时间为30天!
</NoticeBar>
<Spacing />
<NoticeBar mode="link" style={{backgroundColor:'orange'}} textStyle={{color:'#fff'}} onPress={() => console.log('link')}>
: 告诉大家一个‘幸福’的好消息,我们退休将延迟至65岁!!
</NoticeBar>
<Spacing />
<NoticeBar mode="link" style={{backgroundColor:'#fff'}} textStyle={{color:'blue'}} onPress={() => console.log('link')}>
: 告诉大家一个‘幸福’的好消息,我们退休将延迟至65岁!!
</NoticeBar>
</View>
)
}
export default NoticeBarExample;
```
### Props
属性 | 说明 | 类型 | 默认值
----|-----|------|------
| mode | 提示类型,可选 `closable`,`link` | String | - |
| icon | 在开始位置设置图标 | ReactNode | `<Icon type={require('./trips.svg')} size="xxs" />`|
| onPress | 点击关闭或者操作区域的回调函数 | () => void | |
| marqueeProps | marquee 参数 | Object | `{loop: false, leading: 500, trailing: 800, fps: 40, style: {}}` |
| action | 用于替换操作 icon 的文案 | ReactElement | |
| style | 用于设置通告栏样式 | ViewStyle | |
| textStyle | 用于设置通告栏文字样式 | TextStyle | |