2016-05-26 20 views
1

私はrenderRightButton APIを使用して反応ネイティブルータフラックスにrightButtonを挿入しています。私が遭遇した問題は、rightButtonがコンポーネント内のメソッドにアクセスする必要があることです。反応するネイティブルータフラックス:Navbarボタンはシーンコンポーネントメソッドにアクセスする必要があります

class App extends React.Component { 
    render() { 
    return(
     <Router> 
      <Scene 
       key="firstScene" 
       component={FirstScene} 
       title="First scene" 
       rightTitle="Apply" 
       renderRightButton={this.getRightButton} 
      /> 
     </Router> 
    ) 
    } 

    getRightButton() { 
    return(

     // someMethodOnFirstSceneComponent lives on the FirstScene component 

     <View onPress{this.someMethodOnFirstSceneComponent}> 
     <Text> 
      Invoke Function from Scene Component 
     </Text> 
     </View> 
    ) 
    } 
}; 

1つのオプションは、Reduxの減速に現在FirstSceneの状態のすべてのデータを配置し、FirstSceneコンポーネントにsomeMethodOnFirstSceneComponentを置くことであろう。しかし、私はコンポーネント内に状態を保ち、減速機に依存しないようにしています。なぜなら、私の経験から考えると、物事を推理しやすくするからです。

+0

解決方法が見つかりましたか? – berkayk

答えて

1

私はこれを行う方法を見つけました。非常に素晴らしい解決策ではありませんが、機能します。コンポーネントコンストラクタのonRightメソッドを設定しています

constructor(props) { 
    super(props); 
    this.props.component.onRight =() => { 
     console.warn("call from my onRight function")} 
    } 
    } 
関連する問題