我有一个ToDo列表应用程序我正在创建学习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
,则会显示为未定义。那是为什么?
答案 0 :(得分:1)
有几种方法可以解决此问题,例如将renderItem
放在构造函数中,就像handleTodoPress
一样,或者您可以使用属性初始值设定项:
renderItem = ({section, item}) => {
return <TodoItem onItemPress={this.handleTodoPress} title={item.title} description={item.description} completed={item.completed} />
}
现在this
将指向该组件并允许您使用this.handleTodoPress