2017-07-14 24 views
0

私は、星のアイコンであるheaderRightを持っています。ユーザーがクリックすると、別の星のアイコン(塗りつぶし)になります。 ナビゲーションでこの再レンダリングを行うための方向はありますか? 助けていただければ幸いです。 私はreduxを使用して状態を管理しています。 おかげ反応ナビゲーションのヘッダーのアイコンを変更します

答えて

0

使用状態

state = { 
    isClick : false, 
} 

、それはつかの間の状態変化だ場合は、 "たonPress"

0

を条件

{ 
    isClick ? <IconFilled/> : <Icon> 
} 

をレンダリングし、あなたのアイコンアクションでSETSTATEを使用して状態を処理しないと、 Navコンポーネント専用の場合は、@ KimHauのようにthis.stateにユーザーのクリックの状態を保存する必要があります。

しかし、ユーザーのクリックの結果はReduxストアに保存されていることになります。これはおそらく、アプリ全体で持続することを意味しています。

はわずかに変更された:

render() { 

    return (

     // ... your other jsx code 
     { this.props.hasUserClicked ? < IconFilled /> : < Icon /> } 

    ) 

} 

、自身の状態を管理できるように、小道具を受け入れるように<アイコン/>コンポーネントを変更する方が便利かもしれませんけど。

< Icon userClicked={ this.props.hasUserClicked }/> 
0

解決済み。 material-icons-vector-iconsからアイコンにアクセスできないため、アイコンのコンポーネントを作成してこのコンポーネント内のクリックを処理しました。

ありがとう、本当に助けてくれました。

関連する問題