Я пытаюсь использовать что-то вроде функции 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 ответа
Я думаю, попробуйте это, это должно вернуть отфильтрованные сообщения
messageSearchResults: state.messages.filter(message => message.content.includes(action.search))
Поскольку
"Quisque id justo sit amet".includes("id") // returns true
Однако я должен отметить, что includes
будет работать query
- это контейнер в message.content
.
U также может фильтровать подобным образом и проверять его включение или отключение.
messageSearchResults: state.messages.filter({content}=>content.includes(action.search));
Похожие вопросы
Новые вопросы
reactjs
React - это библиотека JavaScript для создания пользовательских интерфейсов. Он использует декларативную компонентную парадигму и стремится быть одновременно эффективным и гибким.