【发布时间】:2019-06-24 15:30:32
【问题描述】:
我正在尝试通过过滤掉当前状态中的值来创建新状态。
// Create new state
const defaultState = [...this.state.defaultData];
newState = defaultState.filter(movies => !filteredItems.includes(movies.genre_ids));
我认为我的问题可能是遍历到子对象数组,因为当我这样做时,我只得到一个空白结果。
示例 JSON(我正在尝试按流派 ID 过滤:
我已经尝试过对值进行硬编码,但这是行不通的。但是,我确实尝试使用相同的方法按标题过滤,并对标题进行硬编码,这确实有效。因此,为什么我认为可能是我进入genre_ids 的问题?
我创建了一个堆栈闪电战来显示当前的状态: https://react-sxyyfp.stackblitz.io
预期结果是,当您选中多个复选框,然后取消选中以删除该特定过滤器时,仍会应用当前活动的过滤器。
【问题讨论】:
-
您能否向我们展示在未选中某个框时从过滤器中删除 ID 的功能?
-
你应该尝试克隆对象
-
movies.genre_ids 看起来像是包含一个数据数组。我不相信您可以直接将其传递给 .includes 方法。您可能必须使用过滤器遍历 _ids 数组
标签: javascript arrays reactjs filter include