【发布时间】:2018-10-09 06:48:08
【问题描述】:
如何使用 onClick 事件更改 currentPage 状态的值?我想在单击带有页数的按钮后更改值。
组件:
import React from 'react';
import { connect } from 'react-redux';
import { setCurrentPage } from '../actions/pages';
const PageItem = ({ pageNumber }) => (
<li className="page-link"
onClick = {(e) => this.setCurrentPage(e) }
id = { pageNumber }>
{ pageNumber }
</li>
);
const mapStateToProps = (state) => {
return {
pages: state.pages.currentPage
};
};
const mapDispatchToProps = (dispatch) => ({
setCurrentPage: () => dispatch(setCurrentPage(pageNumber))
});
export default connect(mapStateToProps, mapDispatchToProps)(PageItem);
减速机:
const pagesReducerDefaultState = {
currentPage: 1
};
export default (state = pagesReducerDefaultState, action) => {
switch (action.type) {
case 'SET_CURRENT_PAGE':
return action.currentPage;
default:
return state;
}
}
行动:
export const setCurrentPage = (currentPage) => ({
type: 'SET_CURRENT_PAGE',
currentPage
});
【问题讨论】:
-
您是否在 Reducer 中尝试过
return ({currentPage: action.currentPage})? -
可以,但还是不行。
-
设置页面onclick看起来不对,你试过这个吗?
onClick = {() => this.setCurrentPage(pageNumber ) } -
我试过这个,我得到错误:未捕获的类型错误:无法在 onClick (PageItem.js:7) 处读取未定义的属性“setCurrentPage”
-
去掉
this方法被导入->onClick = {() => setCurrentPage(pageNumber ) }
标签: reactjs events redux pagination onclick