我已经通过了许多关于Stack的教程和问题,但找不到解决方案。我刚刚学习React/redux,尝试构建OnClick操作。我有以下错误"Maximum call stack size exceeded error"
。我得到了这个,因为我正在渲染一个无限改变我的状态的函数。我试图处理我的<button onClick={DisplayTable(click)}>cool</button>
不同,但似乎没有任何工作。 我也知道我的行动和我想我的减速器正常工作,因为当我通过控制台调度我的动作时:$r.store.dispatch({type: 'SET_TABLE_DATA'});
,我的状态正确更新。我应该如何在我的反应组件中构建onClick动作+ Redux
任何建议?
这里是我的行动:
export const setTableFilter = (click) => {
return {
type: 'SET_TABLE_DATA',
click : click,
};
};
这里是我的减速器:
const tableFilter = (state = 0, action) => {
if(action.type === 'SET_TABLE_DATA') {
return state + 1;
}
return state;
}
,这里是我的组件:
const DisplayTable = (click) => {
return (
<div>
<button onClick={DisplayTable(click)}>cool</button>
</div>)
}
function mapStateToProps(state) {
return {
click: state.tableFilter.click
};
};
const mapDispachToProps = (dispatch) => {
return {
DisplayTable: (click) => {dispatch (setTableFilter(click));
},
};
};
const AppTable = connect(mapStateToProps, mapDispachToProps)(DisplayTable);
export default AppTable;
我也知道,我要建立我的减速器以我的状态应该没有任何突变的方式更新,但是我会保留这个以备后用! :)
谢谢。
既然你提到你是新的反应,[你可能会发现这个网站很有用](https://egghead.io/lessons/javascript-redux-react-counter-example?course=getting-started-with-reux ) – ODelibalta
我已经完成了这个教程,谢谢。它真的帮助我了解什么是减速器,动作和所有......但是当我试图自己构建这个东西时,它不起作用... –