gpt4 book ai didi

javascript - 如何使用过滤的 props 渲染 ReactJS 组件?

转载 作者:行者123 更新时间:2023-12-02 22:25:19 27 4
gpt4 key购买 nike

我制作了一个过滤器,检查某个字符串是否等于数组(工作 Prop )中描述为属性的类别。该数组是一个restAPI 对象,其中包含来自Wordpress 的postitems。我认为我不想实现的目标是直接的。为了可视化我的过滤器,我使用了 React-select node_module 中的预制解决方案来显示我的过滤器。

方法

如果我的( react 选择)下拉过滤器未被选择或者页面只是堆积起来,它应该显示包含帖子的完整列表。否则,如果我从下拉过滤器中选择一个选项,例如“UX 设计”,它应该显示一个过滤列表,其中包含按“Ux 设计”分类的帖子项目

我创建了下面的功能示例,在其中检查是否使用过滤器选择了下拉列表(react-select)。不幸的是,当我选择 react 选择下拉菜单并通过原始 Prop “工作”进行过滤时,我没有得到渲染列表,而是得到警告。我在这里犯了什么错误?

render (){
const { work } = this.props;
const { selectedOption } = this.state;

return selectedOption === null ? (
<RenderOverview work={work} />
) : (
<RenderOverview
work={work.map(value => {
let type = value.pure_taxonomies.types[0].name;
if (type === selectedOption.label) {
return value;
}
})}
/>
);

}

在我的控制台中,我运行脚本后返回。

47:42  warning  Expected to return a value at the end of this function array-callback-return

最佳答案

您正在使用 map 而不是 filter ,如果您没有在 map 函数中返回某些内容,它将返回 undefined作为新数组中的项目。

您可以按如下方式编写渲染,您始终返回 <RenderOverview>组件,如果有选定的选项,则过滤您的 work基于所选选项,否则使用原始 work列表。

return (
<RenderOverview
work={selectedOption ? work.filter(value => value.pure_taxonomies.types[0].name === selectedOption.label) : work}
/>
);

关于javascript - 如何使用过滤的 props 渲染 ReactJS 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59091103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com