Javascript Redux应用程序:无法读取属性';过滤器';未定义的

Javascript Redux应用程序:无法读取属性';过滤器';未定义的,javascript,reactjs,redux,Javascript,Reactjs,Redux,我的减速器有错误: 道具实际-这是飞机起飞或到达的时间,此属性位于我的API中 API具有以下结构: {"body":{ "departure":[{actual: value},{term: value}], "arrival":[{....},{......}]} } 代码: airplanes.js(减速器) app.js(主要组件) 从“React”导入React; 从“react”导入{Component}; 从“react redux”导入{connect}; 从“./actio

我的减速器有错误:

道具
实际
-这是飞机起飞或到达的时间,此属性位于我的API中 API具有以下结构:

{"body":{
"departure":[{actual: value},{term: value}],
"arrival":[{....},{......}]}
}
代码:

airplanes.js(减速器)

app.js(主要组件)

从“React”导入React;
从“react”导入{Component};
从“react redux”导入{connect};
从“./actions”导入{fetchData};
从“/TableData”导入TableData;
从“/TableSearch”导入表搜索;
从“/Header”导入标题;
从“/Footer”导入页脚;
导入“/app.css”;
导出函数searchFilter(搜索、数据){
返回data.filter(n=>n.term.toLowerCase().includes(search));
}
施工天数=[“23-08-2019”、“24-08-2019”、“25-08-2019”];
类根扩展了React.Component{
componentDidMount(){
this.props.onFetchData(天[this.props.propReducer.day]);
}
render(){
const{onFilter,onSetSearch,onFetchData}=this.props;
const{search,shift,data,filteredData}=this.props.propReducer;
console.log(filteredData);
返回(
搜索航班
onSetSearch(e.target.value)}
onSearch={()=>onFilter()}
/>
{天&&
days.map((day,i)=>(
onFetchData(天)}
className={i==day?“活动”:“}
>
{day}
))}

{数据&& Object.keys(data.map)(n=>( onFilter({shift:e.target.dataset.shift})} className={n==shift?“活动”:“noActive”} > {n} ))} {数据&&} ); } } 导出常量ConnectedRoot=connect( state=>state, 分派=>({ onFilter:args=>dispatch({type:“RUN_FILTER”,…args}), onSetSearch:search=>dispatch({type:“SET_search”,search}), onFetchData:day=>dispatch(fetchData(day)) }) )(根);
顺便说一句,函数
searchFilter
是写在属性
term
上的,而不是属性
actual
。可能部分原因是这个,但不仅仅是这个,因为我试图用
actual
替换
术语
,但错误仍然存在


如何修复此错误?

给定
onFilter
app.js中的action creator:

onFilter: args => dispatch({ type: "RUN_FILTER", ...args })
<TableSearch ... onSearch={(value) => onFilter({search: value})} />
在没有第一个参数的情况下调用时:

<TableSearch ... onSearch={() => onFilter()} />

但是,在调用的
TableSearch.js
中还有一个问题:

<button ... onClick={() => onSearch(value)}>

…并根据业务逻辑使用
action.search | | state.search
中进行过滤(…)

非常感谢您的回答!你能帮我纠正沙盒错误吗?我只是react和redux的初学者,不了解您编写的所有内容以及在哪里修复它。我了解一些内容,但不是所有内容。我只是认为这会比我问您代码中要替换的内容、位置和行更快。我的沙盒:请问到底什么不清楚,更好的解释可能也会帮助未来的用户。好的:1)在aiplanes.js中,我更改了:
state.data[action.shift | | state.shift]。filter
,但下面我有一行:
case“LOAD_data_END”:var newData=action.payload.data[state.shift].filter(x=>{
TableSearch…onSearch={(value)=>onFilter({search:value}})}/>我是否应该在app.js中编写它?3)并在
过滤器中使用
action.search | | state.search
。我应该在哪个文件和哪些行中更改它?1)这取决于您是否使用
shift
有效载荷发送
LOAD\u DATA\u END
操作-可能不是。2)是的,在使用
的任何地方。3)不知道所需的行为是什么,搜索应该如何工作。但是
案例中的某个地方“运行过滤器”:
我可以给你写一封写在github中的电子邮件吗?写起来比写在评论中更方便?
state.data[action.shift || state.shift].filter
<button ... onClick={() => onSearch(value)}>
<TableSearch ... onSearch={(value) => onFilter({search: value})} />