热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Reactredux,存储中的值将重置

通过单击按钮触发的此操作,我正在商店中设置新值:onClick{()>{this.handleChange

通过单击按钮触发的此操作,我正在商店中设置新值:

OnClick={() => { this.handleChange(values)

函数是:

handleChange = (values) => {
const { setComponentSelected } = this.props;
//some code
setComponentSelected(values);
//some code
}

这样,我可以在Redux Dev Tools中看到我的状态已更改:

React-redux,存储中的值将重置

在dom中,我可以看到这种变化。

但是,另一个组件正在将我遇到问题的组件重新渲染。在此组件中,我将以这种方式进行渲染:

render() {
const { getcomponentSelected } = this.props;
console.log('getcomponentSelected',getcomponentSelected)

这就是我将商店用于redux的方式:

const mapstatetoProps = state => ({
getcomponentSelected: state.displayReportRecordReducers.setComponentSelected_data
});
const mapDispatchToProps = {
setComponentSelected: displayReportRecordactions.setComponentSelected,}

起初我可以看到this.handleChange的变化,但是每次重新安装组件时,此console.log的值都是旧的,与我在this.handleChange中的值不一样。商店。重新安装没有执行任何操作,更改存储的操作仅通过const setCompOnentSelected= (value: any) => {
return async (dispatch: any) => {
try {
dispatch(success(value));
}
catch (err) {
console.log('error:',err);
};
}
function success(value) {
return { type: displayReportRecordConstants.SET_COMPONENT_SELECTED,payload: { value } };
}
};
触发,因此我不知道为什么更改了值,并且没有显示存储中的内容。

有什么主意吗?

编辑:

我的动作是:

case displayReportRecordConstants.SET_COMPONENT_SELECTED:
return update(state,{
setComponentSelected_data: { $set: payload.value },});

我的减速器是:

final snackBar = snackBar(content: Text('Yay! A snackBar!'));
// Find the Scaffold in the widget tree and use it to show a snackBar.
Scaffold.of(context).showsnackBar(snackBar);

编辑2:此屏幕快照显示了商店和我渲染的数据之间的一致性,请首先单击:

React-redux,存储中的值将重置

但是,如果组件被另一个组件重新渲染,则我会丢失控制台日志中的数据,这可以从商店中获取。但是Redux开发工具没有任何变化!

React-redux,存储中的值将重置





推荐阅读
author-avatar
深tp悟人生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有