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

时间:2018-10-23 10:04:45

标签: reactjs ecmascript-6 redux react-redux

我正在尝试在Redux中使用类似contains()的函数,但是显然它不存在。

    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消息向我返回(其中之一):

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 个答案:

答案 0 :(得分:2)

我想尝试一下,这应该返回过滤后的消息

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

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

但是,我应该指出includes可以工作,querymessage.content中的容器。

答案 1 :(得分:1)

U还可以像这样过滤并检查其包含与否。

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