代码之家  ›  专栏  ›  技术社区  ›  Sinan Samet

如果消息数组中存在特定字符串,则在Redux存储中搜索

  •  0
  • Sinan Samet  · 技术社区  · 7 年前

    我试着用一种 contains() 在redux中的函数,但显然它不存在。

        case types.FILTER_MESSAGES_BY_CONTENT:
            return {
                ...state,
                messageSearchResults: state.messages.map(message => message.content.contains(action.search))
            };
    

    行动:

    export function filterMessagesByContent(search) {
        return {
            type: types.FILTER_MESSAGES_BY_CONTENT,
            search: search
        };
    }
    

    Console.log of messages返回以下消息(其中之一):

    0:
    category: "posuere"
    comments: (4) [{…}, {…}, {…}, {…}]
    content: "Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros."
    date: "2018-09-07 08:12:18"
    downVotes: 15
    id: 2
    upVotes: 6
    __proto__: Object
    

    messageSearchResults 我想把每一条包含我给出的搜索查询的消息。

    我该怎么做?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Rashmirathi    7 年前

    我想试试这个,这个应该会返回过滤后的消息

    messageSearchResults: state.messages.filter(message => message.content.includes(action.search))
    

    自从

    "Quisque id justo sit amet".includes("id") // returns true
    

    不过,我要指出 includes 会有用的 query message.content .

        2
  •  1
  •   Asif vora    7 年前

    你也可以这样过滤并检查它的包含与否。

    messageSearchResults: state.messages.filter({content}=>content.includes(action.search));
    
    推荐文章