3.5 通用事件

优质
小牛编辑
128浏览
2023-12-01
  • 基础组件、ui组件通常包含以下通用事件
  • 除了通用事件外,不同组件还会有不同的事件,具体可参考nuke 文档。

    onPress 简单的点击事件

  • 仅 TouchableHighlight、Button、Tabbar.Item 具备 onPress
import {createElement, Component} from 'weex-rx';
import {View, Text, TouchableHighlight} from 'nuke';
class myComponent extends Component {
    render(){
        return (
            <TouchableHighlight onPress={()=>{
                console.log('press');
                }}>
                <View>Test</View>
            </TouchableHighlight>
        );
    }
}

onlongpress 长按事件

除了Button等特殊组件外,其他的组件都支持onlongpress事件,如:

import { createElement, Component } from 'weex-rx';
import { mount } from 'nuke-mounter';
import { View, Text, Button, Modal} from 'nuke';

class Demo extends Component {
    render() {
        return (
            <View 
                style={{flex:1,backgroundColor:'navy'}} 
                onlongpress={()=>{Modal.alert('onlongpress')}}>
            </View>
        );
    }

}

mount(<Demo />, 'body');

export default Demo;

onappear/ondisappear 事件

ListView的renderRow方法根节点的组件拥有ondisappear和onappear事件。

  • onappear:当一个元素放在滚动的列表里时,能通过这个事件侦听当前的元素是否在滚动的可见区域类。
  • ondisappear:当一个元素放在滚动的列表里时,能通过这个事件侦听当前的元素是否在消失在滚动区域里。如:
...
renderItem(item, index) {
    return (
        <TouchableHighlight ondisappear={()=>{Modal.alert('ondisappear')}} 
            onappear={()=>{Modal.alert('onappear')}} style={flex:1} >
            <Text style={app.itemTextList}>{item.title}</Text>
        </TouchableHighlight>
    );
}
...
render() {
    var self = this;
    return (
        <ListView 
            header={listHeader}
            fixHeader={false}
            loadMoreOffset="500"
            style={app.listContainer}
            refresh={listRefresh}
            onloading={self.onloading}
            onrefresh={self.onrefresh}
            renderSeparator={self.separate.bind(self)}
            renderRow={self.renderItem.bind(self)} 
            data={self.state.data}
            stop={self.state.stop}
            loadMore={self.handleLoadMore.bind(self)} 
          />

    )
}