我的问题是我想从 BountyDetailsScreen 导航到 LoyaltyScreen,但 navigateBack() 函数调用不会触发任何操作。当我记录功能时,它说:
我唯一注意到的是,navigationStack 是空的。当我navigateTo
对它正在工作的功能做同样的事情时,但是我的导航堆栈搞砸了。
在我的 LoyaltyScreen.js 中,我正在显示一个 ListView。它是一个 RN ListView(不是从shoutem 导入的)。
LoyaltyScreen.js
renderRow(bounty) {
return (
<ListBountiesView
key={bounty.id}
bounty={bounty}
onDetailPress={this.openDetailsScreen}
redeemBounty={this.redeemBounty}
/>
);
}
ListBountiesView.js
ListBountiesView 呈现每个 ListView 行并在单击该行时打开一个详细信息屏幕。
render() {
const { bounty } = this.props;
return (
<TouchableOpacity onPress={this.onDetailPress}>
{bounty.type == 0 ? this.renderInShopBounty() : this.renderContestBounty()}
<Divider styleName="line" />
</TouchableOpacity>
);
}
BountyDetailsScreen.js
在 BountyDetailsScreen 中,我显示详细信息,并希望在按下按钮时将 navigateBack() 导航到忠诚度屏幕。
<Button styleName="full-width" onPress={() => this.onRedeemClick()}>
<Icon name="add-to-cart" />
<Text>Einlösen</Text>
</Button>
onRedeemClick() {
const { bounty, onRedeemPress } = this.props;
onRedeemPress(bounty);
navigateBack();
}