У меня есть асинхронной действие, которое выборки данных из REST API:React Redux действие отправки после того, как другое действие
export const list = (top, skip) => dispatch => {
dispatch({ type: 'LIST.REQUEST' });
$.get(API_URL, { top: top, skip: skip })
.done((data, testStatus, jqXHR) => {
dispatch({ type: 'LIST.SUCCESS', data: data });
});
};
A синхронизации действие, которое изменяет skip
состояние:
export const setSkip = (skip) => {
return {
type: 'LIST.SET_SKIP',
skip: skip
};
};
Начальное состояние для top = 10, skip = 0
. В компоненте:
class List extends Component {
componentDidMount() {
this.list();
}
nextPage() {
let top = this.props.list.top;
let skip = this.props.list.skip;
// After this
this.props.onSetSkip(skip + top);
// Here skip has previous value of 0.
this.list();
// Here skip has new value of 10.
}
list() {
this.props.List(this.props.list.top, this.props.list.skip);
}
render() {
return (
<div>
<table> ... </table>
<button onClick={this.nextPage.bind(this)}>Next</button>
</div>
);
}
}
Когда кнопка Следующая в первый раз щелкнула, значение skip
, которая использует асинхронное действие не изменилось. Как я могу отправить действие после sync action?
Спасибо за помощь. Можете ли вы предоставить примерный код? (Я неэби в реале). –
@DenisBednov Тунки должны работать для вас, если вы будете следовать руководству по трюкам. Разделите свои редукторы, как в руководстве, в любом случае я связан, и вы получите представление о том, о чем я говорю. –