Поиск в хранилище Redux, если в массиве сообщений существует определенная строка - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь использовать что-то вроде 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 ofсообщения возвращают мне это (одно из них):

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 голосов
/ 23 октября 2018

U также может фильтровать, как это, и проверять его включение или нет.

messageSearchResults: state.messages.filter({content}=>content.includes(action.search));
0 голосов
/ 23 октября 2018

Я думаю, попробуйте это, это должно вернуть отфильтрованные сообщения

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

, так как

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

Однако, я должен отметить, что includes будет работать query является контейнеромв message.content.

...