2016-09-22 3 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()가 하셨네요하지 않습니다 정말 아무것도 일어나지 않는 것처럼. onPress에 전달 된 매개 변수를 onPress={Actions.categoryScreen}으로 바꾸면 정상적으로 작동하고 categoryScreen이 표시됩니다. 그러나 이것으로 인해 onPress가 트리거 될 때 수행 할 작업이 많아지며 'name'매개 변수를 전달해야 할 필요가 있습니다.

의견이 있으십니까?

미리 감사드립니다.

답변

0

this이 (가) 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) 
} 
관련 문제