Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 某些数据没有使用react-redux从容器组件传递到哑组件_Reactjs_Redux_React Redux - Fatal编程技术网

Reactjs 某些数据没有使用react-redux从容器组件传递到哑组件

Reactjs 某些数据没有使用react-redux从容器组件传递到哑组件,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我有点受不了,因为当您使用react redux的connect api时,它会自动工作。 但现在我面临着这样一种情况:当从reducer返回某些数据时,某些数据没有得到更新 这是我的伪代码 在我的reducer文件中 案例“按日期排序”: 让startDateSort=state.startDateSort; 让endDateSort=state.endDateSort; const sortByStartDateUp=函数(a,b){ 返回新日期(a.开始日期)>新日期(b.开始日期)?1:

我有点受不了,因为当您使用react redux的connect api时,它会自动工作。 但现在我面临着这样一种情况:当从reducer返回某些数据时,某些数据没有得到更新

这是我的伪代码

在我的reducer文件中

案例“按日期排序”:
让startDateSort=state.startDateSort;
让endDateSort=state.endDateSort;
const sortByStartDateUp=函数(a,b){
返回新日期(a.开始日期)>新日期(b.开始日期)?1:-1;
}
const sortByStartDateDown=函数(a,b){
返回新日期(b.开始日期)>新日期(a.开始日期)?1:-1;
}
const sortByEndDateUp=函数(a,b){
返回新日期(a.停止日期)>新日期(b.停止日期)?1:-1;
}
const sortByEndDateDown=函数(a,b){
返回新日期(b.停止日期)>新日期(a.停止日期)?1:-1;
}
让sortFunctionByDate=“”;
如果(action.time==“开始”){
sortFunctionByDate=startDateSort==true?sortByStartDateUp:sortByStartDateDown;
startDateSort=!startDateSort;
}否则{
sortFunctionByDate=endDateSort==true?sortByEndDateUp:sortByEndDateDown;
endDateSort=!endDateSort;
}
let filtered=state.status+“横幅”;
让banners_filtered=状态['banners'].排序(sortFunctionByDate)
状态[已过滤]=已过滤的横幅;
状态[“横幅”]=已过滤的横幅
返回Object.assign({},state{
startDateSort,
endDateSort,
showImageButton:false,
})
到目前为止,我能够断言我得到的信息是正确的。从banners_筛选变量

这是我的容器组件:

const-mapStateToProps=(state)=>{
让{liveBanners}=state.BannerReducer;
日志(“livebanner”,livebanner)
返回{
现场横幅
}
}

const BannerTableList=connect(MapStateTrops、mapDispatchToProps(BannerTable)
----我可以在这里记录LiveBanner..以及-- 但是这个值在哑组件中没有得到更新..就像我一直在做的其他变量一样..可能是因为减速机内部的计算太多吗?我几乎不怀疑这是原因。但是如果你有任何预感,可能出了什么问题,请让我知道。我现在全神贯注..谢谢

--控制台中也没有显示错误-- ---更多代码更新--

constbannertable=({liveBanners})=>{
console.log(“横幅”,livebanner)
}

上面是我的哑组件,它使用无状态函数,LiveBanner从未在控制台中登录。

您正在修改减速机中的当前状态对象:

状态[已过滤]=已过滤的横幅;
状态[“横幅”]=已过滤的横幅
返回Object.assign({},state{
startDateSort,
endDateSort,
showImageButton:false,
})
这可以防止react-redux检测到更改,这将阻止预期的重新加载。您可能只需要将其更改为:

返回Object.assign({},state{
[已过滤]:已过滤的横幅,
横幅:已过滤的横幅,
startDateSort,
endDateSort,
showImageButton:false,
})

好的,我正在读这个问题……它给了我一些线索,你什么时候
让{liveBanners}=state.BannerReducer;
你会把它放在你的容器中(智能)组件为
this.props.livebanner
,当您需要传递到哑组件时…您可能应该显示您正在传递的组件/输入..我几乎可以肯定您的建议会起作用,但没有骰子…有其他原因吗?