私は非同期呼び出しの概念を理解する上で問題に直面しました。状態の更新後に非同期関数を呼び出す方法は?
私の状態:sentence: { author: '', context: '', date: '' }
それから私はReduxの状態を更新する機能を持っている:
edit(author, date) {
let { sentence } = this.props;
this.props.updateAuthor(sentence, author);
this.props.updateDate(sentence, date)
}
これらの更新方法が異なるアクションであり、異なる減速を持っています。
は、更新された状態の属性の後、私はこれでサーバーにデータを送信したい:
function uploadToServer() {
this.props.upload(this.props.sentence);
}
私は更新が終了した後、アップロード機能を呼び出す方法に迷ってしまいました。
は、あなたが何をすべき:あなたは2番目のパラメータでコールバックを呼び出すために必要があるので
setState
は非同期です。 今のところ、あなたがリデューサーのみをアップデートしている場合、updateAuthorとupdateDateを使用してサーバーにリクエストすることなく、アップロードする前にレデューサーを待つ必要はありません。 – jmac実際には私の状態はこれよりずっと大きく、内部のオブジェクトはデータの配列が異なっていて、アップロードする前にサーバにIDとその配列のいくつかの属性を読み込み、各チャンクごとに異なるURL。 –
ライフサイクルメソッドを使用することができます:* componentWillReceiveProps()*。接続された減速機が更新されるたびに、新しい小道具に関する情報が得られます。 – jmac