2016-11-16 10 views
0

私のNotificationCenterコンポーネントの小道具として、通知の配列があります。TypeScript Redux React:コンポーネントの子を反復処理する方法

ユーザーが通知をクリックすると(「すべてを読み取る」ボタンで)、「isRead = true」とマークされ、UIで別の色で再表示されます。

私はすでにすべて(アクション、イベントなど)を行っていましたが、私はNotifications propを再レンダリングできるように、リジェクタを起動する必要があります。

これは、これまでの私のコードです:

if (isType(action, ActionTypes.MarkNotificationsAsRead)) { 
    return Object.assign({}, state, { 
     notifications: state.notifications.map(n => action.payload.<<HELP>>) 
    } as INotificationCentreState); 

「state.notificationsは、」使用可能なすべての通知と私の通知小道具です。

"action.payload"は、一致する必要がある通知のIDを含む文字列配列で、 'notification.isRead = true'に変更します。

ここで私が主張している主な問題は、通知リストを変更することができず、.map()の仕組みが完全にはわからないことです。

誰でも私にヒントを教えてもらえますか?私は私の問題がはっきりしていることを願う

ありがとうございます!

答えて

1

あなたは、現在の通知のIDがaction.payload

state.notifications.map(n => Object.assign({}, n, {isRead: action.payload.indexOf(n.id) > -1})) 
+0

ありがとうであるかどうかに応じてisReadを切り替えることができ!私はちょうどそれがIsReadプロパティをトグルしていたので、最後に条件を追加する必要があったが、それは魅力として働いた! 'IsRead:action.payload.indexOf(n.Id)> -1? true:n.IsRead' –

関連する問題