挣扎着一些基本的反应原生的东西。 我有一个主要细节场景。
我按下列表项上的编辑按钮以进入详细视图,在该视图中,我向导航栏添加了一个保存按钮。简单明了。
通过以下方式导航到详细信息屏幕:
this.props.navigator.push({
component: EditScreen,
passProps: {
id:myID,
},
onPress: this.onSave,
rightText: 'Save'
});
}
当点击导航栏上的保存按钮时,会调用父组件的onSave方法,而忽略某些修改的上下文。
这是如何在本地反应中完成的? 我是一个反应原生的初学者,只是希望能够清楚地了解这些东西是如何发生的,然后转移到一些受助于灵感的libs; - )
更新 - 绑定到此不是问题
流速:
按save时,我返回到父视图,并且没有对该实体的引用。这是我的问题,而不是方法的约束力。
答案 0 :(得分:0)
使用es6类时,this
不会自动绑定到函数,就像React.createClass那样。您必须手动将this
绑定到类函数。有多种方法可以做到这一点。
您可以使用es6 fat箭头绑定this
:
onPress: () => this.onSave()
您可以使用Function.prototype.bind():
onPress: this.onSave.bind(this)
您也可以在构造函数上绑定它们,因此该方法只创建一次(性能最佳,但如果您只是构建常规UI则无关紧要;如果您的onSave函数被称为1000)每帧的时间,那么这可能是一个好主意):
constructor () {
super()
this.onSave = this.onSave.bind(this)
}