【发布时间】:2020-03-06 10:04:18
【问题描述】:
我有一个起飞或到达机场的飞机列表,我还有一个搜索过滤器,我可以在其中输入到达或离开的时间并过滤飞机。我使用我的 API 的 actual 属性来执行此操作。但我需要改变我的搜索。现在我需要按航班号搜索 - 我的 API 的 planeTypeID.code 属性。但是当我改变它时,停止显示飞机列表。我的错误是什么以及如何解决?
我只是在 actual 各处写了 ["planeTypeID.code"] 并删除方法:
.split("-").reverse().join("-")
旧版本:
小部分 plane.js(reducer)
case "RUN_FILTER":
var newData = state.data[action.shift || state.shift].filter(x => {
return (
x.actual &&
x.actual.includes(
state.day
.split("-")
.reverse()
.join("-")
)
);
});
case "LOAD_DATA_END":
var newData = action.payload.data[state.shift].filter(x => {
return (
x.actual &&
x.actual.includes(
action.payload.day
.split("-")
.reverse()
.join("-")
)
);
});
小部分app.js(主要组件)
export function searchFilter(search, data) {
return data.filter(n => n.actual.toLowerCase().includes(search));
}
/////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// ////
新版本:
小部分飞机.js(减速器)
case "RUN_FILTER":
var newData = state.data[action.shift || state.shift].filter(x => {
return (
x["planeTypeID.code"] && // Сhange
x["planeTypeID.code"].includes( // Сhange
state.day
// delete
)
);
});
return Object.assign({}, state, {
case "LOAD_DATA_END":
var newData = action.payload.data[state.shift].filter(x => {
return (
x["planeTypeID.code"] && // Сhange
x["planeTypeID.code"].includes( // Сhange
action.payload.day
// delete
)
);
});
小部分app.js(主要组件)
export function searchFilter(search, data) {
return data.filter(n => n["planeTypeID.code"].toLowerCase().includes(search)); // Сhange
}
沙盒中的所有项目代码:
https://codesandbox.io/s/redux-ant-design-filter-table-column-with-slider-jj6mu
【问题讨论】:
-
请修改你的代码,只留下重要的部分
-
@iLiA 完成。你能帮我吗?
-
您的代码似乎不正确。我看到的第一件事是你在减速器中用括号返回数据。使用 return 您将返回对象(新状态),因此您应该使用
{ }代替。另外,您正在拆分state.day,因此您正在改变状态,这不是一个好习惯,因此它不会重新渲染组件,将day映射为其道具。我的建议是仔细阅读 redux 的文档并在之后实施
标签: javascript reactjs redux