我有一个正在创建的待办事项列表应用程序,用于学习React Native。当我尝试将clickhandler传递给子项时,它表示clickhandler函数未定义。
这是相关的代码。
constructor(props) {
super(props)
this.handleTodoPress = this.handleTodoPress.bind(this)
}
handleTodoPress (event) {
console.warn('Press handled')
}
renderItem ({section, item}) {
return <TodoItem onItemPress={this.handleTodoPress} title={item.title} description={item.description} completed={item.completed} />
}
如果我在
handleTodoPress
中登录renderItem
,它将显示为未定义。这是为什么? 最佳答案
有几种方法可以解决此问题,例如将renderItem
像handleTodoPress
一样放在构造函数中,或者可以使用属性初始化程序:
renderItem = ({section, item}) => {
return <TodoItem onItemPress={this.handleTodoPress} title={item.title} description={item.description} completed={item.completed} />
}
现在,
this
将指向组件,并允许您使用this.handleTodoPress