taro 如何使用dom_taro 事件处理

Taro中的事件处理与DOM事件存在一些差异。Taro事件绑定使用驼峰式命名,而不能使用catchEvent来阻止冒泡,需要显式调用stopPropagation。传递参数时,推荐使用bind,不支持匿名函数传参或多层lambda。Taro要求事件处理函数参数以on开头。例如,阻止事件冒泡的例子展示了如何在类组件中实现。
摘要由CSDN通过智能技术生成

Taro 元素的事件处理和 DOM 元素的很相似。但是有一点语法上的不同:

Taro 事件绑定属性的命名采用驼峰式写法,而不是小写。 如果采用 JSX 的语法你需要传入一个函数作为事件处理函数,而不是一个字符串 (DOM 元素的写法)。 例如,传统的微信小程序模板:

Activate Lasers

Taro 中稍稍有点不同:

Activate Lasers

在 Taro 中另一个不同是你不能使用 catchEvent 的方式阻止事件冒泡。你必须明确的使用 stopPropagation。例如,阻止事件冒泡你可以这样写:

class Toggle extends React.Component {

constructor (props) {

super(props)

this.state = {isToggleOn: true}

}

onClick = (e) => {

e.stopPropagation()

this.setState(prevState => ({

isToggleOn: !prevState.isToggleOn

}))

}

render () {

return (

{this.state.isToggleOn ? 'ON' : 'OFF'}

)

}

}

向事件处理程序传递参数

通常我们会为事件处理程序传递额外的参数。例如,若是 id 是你要删除那一行的 id,以下两种方式都可以向事件处理程序传递参数:

Delete Row

当你通过 bind 方式向监听函数传参,在类组件中定义的监听函数,事件对象 e 要排在所传递参数的后面。

class Popper extends Component {

constructor () {

super(...arguments)

this.state = { name:'Hello world!' }

}

// 你可以通过 bind 传入多个参数

preventPop (name, test, e) { //事件对象 e 要放在最后

e.preventDefault()

}

render () {

return

}

}

Taro 目前暂时不支持通过匿名函数传值,也不支持多层 lambda 嵌套。当你有传参需求时,请全部使用 bind 来处理。

任何组件的事件传递都要以 on 开头

在 Taro 中,事件参数(props)都以 on 开头

只要当 JSX 组件传入的参数是函数,参数名就必须以 on 开头:

// 正确

const element =

const element2 =

const element3 =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值