UPDATE働いていた場合、私に教えてください - 以下に記載する方法は再び、作業を停止している最後のリリースでは2017年10月18日
を。だから、これは私の最後の解決策は次のとおりです。
class MyAwesomeClass extends React.Component {
componentWillMount() {
Actions.refresh({ right: this._renderRightButton });
}
_renderRightButton =() => {
return(
<TouchableOpacity onPress={() => this._handleIconTouch() } >
<Icon name="check" size={26} color='grey' />
</TouchableOpacity>
);
};
_handleIconTouch =() => {
console.log('Touched!');
}
}
UPDATE - RNRF4ナビゲーションソリューションとして今ReactNavigationを使用しているので2017年8月7日
、上記の溶液は動作を停止しました。 ReactNavigation APIを直接使用するためには、再び動作させる必要があります。これは私の解決策です:
ナビゲーションオプション内の一般的なナビゲーション情報は、クラスレベルでアクセスされます。コンテキストは静的なので、Componentメソッドとそのパラメータにはアクセスできません。それを動作させるには少しの回避策が必要です。
まず、あなたのタッチを処理する関数を定義する必要があります。この場合handleIconTouchです。ここでは、ボタンが押されたときにボタンが実行するアクションを定義する必要があります。この機能は静的ではないので、ここから小道具や状態にアクセスして、より多くの機能とオプションを提供することができます。
次に、あなたのcomponentWillMountで()方法は、SETPARAMS()がnavigationOptionsの静的コンテキストで利用できるようにすると、ナビゲーションのparamsにメソッドを追加します。このメソッドは静的でもないので、必要なパラメータをボタンに渡すことができます。
最後に、パラメータを使用して、最も適したコンポーネントを使用してnavigationOptions/headerRightキー内にボタンを定義します。で追加componentWillMountで
renderRightButton =() => {
return(
<TouchableOpacity onPress={() => null } >
<Icon name="check" size={26} color='grey' />
</TouchableOpacity>
);
};
を()メソッド:
は、例えば、ご希望のロジックとイメージを持つメソッドを作成します。
ORIGINAL 私はあなたにこのアプローチをお勧めします初め:
Actions.refresh({ renderRightButton: this.renderRightButton });
準備完了!
疑問がある場合は教えてください。
ありがとうございます。 しかし、少なくとも2つ、右にもう1つイメージボタンが必要です。 and onRight = {Actions.scene1key} しかし、シーン1の切り替えに失敗しました。なぜこれが起こったのか説明できますか? –
ああ、私は、あなたは複数の右ボタンがほしいと思う。残念なことに私はそれに答えることはできません。シーンを切り替えるには 'onRight = {()=> Actions.scene1Key()}' – corasan