【问题标题】:TypeScript Redux React: How to iterate through a component childrenTypeScript Redux React:如何遍历子组件
【发布时间】:2016-11-16 14:59:37
【问题描述】:

我有一个通知数组作为我的 NotificationCenter 组件的道具。

当用户点击任何通知(或“标记为已读”按钮)时,应将其标记为“isRead = true”,然后在 UI 上用另一种颜色重新呈现。

我已经做了所有事情(动作、事件等),但现在我需要触发 Reducer,以便我的 Notifications 道具可以重新渲染。

这是我目前的代码:

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

“state.notifications”是我的 Notification 道具,包含所有可用的通知。

“action.payload”是一个字符串数组,包含我应该匹配的通知的 ID,然后修改为 'notification.isRead = true'。

我在这里遇到的主要问题是我无法改变我的通知列表,而且我不完全确定 .map() 是如何工作的。

谁能给我一个提示?我希望我的问题很清楚。

谢谢!

【问题讨论】:

    标签: javascript typescript react-redux


    【解决方案1】:

    您可以根据当前通知的 id 是否在 action.payload 中来切换 isRead

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

    【讨论】:

    • 谢谢!!我只需要在最后添加一个条件,因为它正在切换 IsRead 属性,但它很有魅力! IsRead: action.payload.indexOf(n.Id) &gt; -1 ? true : n.IsRead
    猜你喜欢
    • 2016-03-05
    • 2018-03-07
    • 1970-01-01
    • 2020-08-02
    • 2019-07-09
    • 2023-01-24
    • 2021-06-29
    • 1970-01-01
    • 2023-01-17
    相关资源
    最近更新 更多