0

我有以下代码:

_renderMenuItem(name) {
    return (
        <TouchableHighlight onPress={() => this._onItemClicked(name) }>
            <Text>{name}</Text>
        </TouchableHighlight>
    )
}

_onItemClicked(name) {
    Actions.categoryScreen()
    this.props.dispatch(updateActivePage(name))

    // Close the NavigationDrawer
    Actions.refresh({ key: 'drawer', open: false })
}

Actions.refresh()工作正常,但没有Actions.categoryScreen()- 看起来没有真正发生。如果我将传递给的参数替换为onPressonPress={Actions.categoryScreen}那么它可以正常工作并显示 categoryScreen。但是,这对我没有帮助,因为当 onPress 被触发时我想做更多的事情,我还需要传递“名称”参数。

任何想法,任何人?

提前致谢。

4

1 回答 1

0

由于react-native-router-flux 的存储库上报告的这个问题,我找到了解决方案。似乎有一个错误,即当一个接一个地触发两个动作时,只有第二个动作真正起作用。因此,人们发布并为我工作的解决方法是触发第二个动作超时。即使超时时间为 0,它也可以工作。这是我_onItemClicked现在的样子:

_onItemClicked(name) {
    Actions.categoryScreen()
    this.props.dispatch(updateActivePage(name))

    // Close the NavigationDrawer. 
    setTimeout(() => Actions.refresh({ key: 'drawer', open: false }), 0)
}
于 2016-09-22T13:08:19.017 回答