我正在尝试在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
中,我想将包含我所提供的搜索查询的每条消息放入。
我该怎么做?
答案 0 :(得分:2)
我想尝试一下,这应该返回过滤后的消息
messageSearchResults: state.messages.filter(message => message.content.includes(action.search))
自
"Quisque id justo sit amet".includes("id") // returns true
但是,我应该指出includes
可以工作,query
是message.content
中的容器。
答案 1 :(得分:1)
U还可以像这样过滤并检查其包含与否。
messageSearchResults: state.messages.filter({content}=>content.includes(action.search));