在我的表单中,我需要在标题右侧有一个提交按钮,该按钮调用与表单底部的提交按钮相同的方法。
React Navigation要求您声明一个名为navigationOptions的静态方法,以便为每个屏幕传递导航器。
问题是我需要从我的两个按钮访问onFormSubmit()
函数,显然你无法在静态方法中访问this
。
有什么方法可以解决这个问题吗?我尝试在导航标题之外自己创建一个按钮,使其具有绝对位置,但我无法设法让它超越标题。
export default class EnterBookDetailsScreen extends Component {
static navigationOptions = ({ navigation }) => ({
headerRight: (
<Button
text="submit"
primary
raised
style={{ container: { margin: 10 } }}
// Is this possible?
onPress={() => this.onFormSubmit()}
/>
),
})
onFormSubmit() {
.
.
.
答案 0 :(得分:2)
static navigationOptions = ({ navigation }) => {
const { params = {} } = navigation.state;
return {
headerRight: (
<Button
text="submit"
primary
raised
style={{ container: { margin: 10 } }}
onPress={() => params.onFormSubmit()}
/>
),
}
}
componentDidMount() {
const { navigation } = this.props;
navigation.setParams({
onFormSubmit: this.onFormSubmit,
});
}
onFormSubmit = () => {
...
}
我正在使用版本1.0.0-beta.11