Я пытаюсь использовать что-то вроде функции 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 я хочу поместить каждое сообщение, содержащее поисковый запрос, который я даю.

Как бы я это сделал?

0
Sinan Samet 23 Окт 2018 в 13:04

2 ответа

Лучший ответ

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

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

Поскольку

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

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

2
Rashmirathi 23 Окт 2018 в 10:38

U также может фильтровать подобным образом и проверять его включение или отключение.

messageSearchResults: state.messages.filter({content}=>content.includes(action.search));
1
Asif vora 23 Окт 2018 в 10:42
52946347