В основном, есть 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);
Все работает, так как на странице отображаются все профили на HomePage, как только я нажимаю на профиль, он направляет меня на ProfilePage, с которым у меня тоже нет проблем.Тем не менее, внутри ProfilePage есть <Link to="/"></Link>
для HomePage, когда я нажимаю Link
, он перенаправляет меня обратно на HomePage, но когда я отслеживаю состояние, появляется ошибка, сообщающая это "Invalid attempt to spread non-iterable instance"
потому что мое предыдущее состояние не было очищено?