2016-09-22 10 views
0

に渡される関数の内部で動作しません:反応するネイティブ・ルータ・フラックス:Actions.KEYは、私は次のコードを持っていたonPress

_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()はない-looksを行います本当に何も起こらないように。 onPressに渡されたパラメータをonPress={Actions.categoryScreen}に置き換えると、正常に動作し、categoryScreenが表示されます。しかし、これは私がonPressがトリガされたときにやりたいことがたくさんあり、また 'name'パラメータを渡す必要があるために役立ちません。

ありがとうございます。

答えて

0

thisは、react-native-router-fluxのリポジトリに関する問題を報告しました。 2つのアクションが順番に実行されると、2つ目のアクションだけが実際に動作するというバグがあるようです。したがって、人々が投稿してくれた回避策は、タイムアウトを指定して2番目のアクションをトリガーすることです。タイムアウトが0であっても機能します。_onItemClickedは次のようになります。

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

    // Close the NavigationDrawer. 
    setTimeout(() => Actions.refresh({ key: 'drawer', open: false }), 0) 
} 
関連する問題