基本上,有HomePage和ProfilePage,HomePage包含呈现给ProfilePage的链接的列表。这是我的动作文件
export function fetchProfiles(page, max) {
const PARAM = `?page=${page}&per_page=${max}`;
const request = axios.get(`${ROOT_URL}/posts${PARAM}`);
return {
type: FETCH_PROFILES,
payload: request
};
}
这将连接到我的异径管
export default function(state={}, action) {
switch(action.type){
case FETCH_PROFILES: {
const { profiles, current_page, total_pages } = action.payload.data;
const prevData = state.data ? state.data : [];
return {
data: [
...prevData,
...profiles
],
totalPage: total_pages,
currentPage: current_page,
hasMore: current_page < total_pages,
loading: false
};
}
在主页上,这就是我处理状态的方式
componentWillMount() {
this.props.fetchProfiles(this.state.currentPage+1, 5);
}
function mapStateToProps(state) {
return { profiles: state.profiles};
}
export default connect(mapStateToProps, {fetchProfiles})(HomePage);
一切正常,因为页面在主页上显示了所有配置文件,一旦我单击一个配置文件,它就会将我定向到一个ProfilePage,这也没有问题。但是,在ProfilePage中,有一个<Link to="/"></Link>
到HomePage,当我单击Link
时,它会将我重定向回HomePage,但是当我跟踪状态时,出现了一个错误
"Invalid attempt to spread non-iterable instance"
是因为我之前的状态未清除吗?