我已經通過了許多關於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
我已經完成了這個教程,謝謝。它真的幫助我瞭解什麼是減速器,動作和所有......但是當我試圖自己構建這個東西時,它不起作用... –