Fungsi yang diharapkan adalah bahwa setelah efek memperoleh data secara asinkron, jendela pop-up menampilkan data yang diperoleh. Setel properti flag state komponen apakah komponen akan ditampilkan. Jika atribut bit bendera ditempatkan dalam status model ketika halaman melompat, bit bendera akan tetap dalam status dan jendela pop-up akan muncul lagi ketika kembali ke halaman, yang tidak saya inginkan.
Secara pribadi, saya pikir lebih tepat untuk menempatkan status pop-up di status komponen reaksi.
Jika ditambahkan ke status komponen reaksi, bagaimana cara memicu pembaruan status setelah panggilan balik efek? Pertanyaan saya adalah ini. Apakah Anda mengubah siklus hidup componentWillReceiveProps? Atau itu cara lain?
Saya memikirkan solusi, dan saya tidak tahu apakah ini tepat.
Dalam aksi efek dipatch, selain muatan normal, saya juga meneruskan metode pembaruan status sebagai parameter ke efek model, dan menyebutnya nanti. kode tampilkan seperti di bawah ini:
// route components.js
showDetail = (record) => {
const { dispatch } = this.props;
dispatch({
type: effects.getDetail,
payload: { id: record.id },
callback: () => {
this.setState({
detailVisible: true,
});
},
});
};
// models
effects: {
*getDetail({ payload, callback }, { call, put }) {
const response = yield call(getDetail, payload);
if (response.success) {
if (callback && typeof callback === 'function') {
callback();
}
yield put({
type: 'getDetailSuccess',
payload: response,
});
}
},
}
Jangan gunakan panggilan balik, setiap efek akan mengembalikan janji setelah pengiriman, cukup tangani jendela sembul di janji
Jangan gunakan panggilan balik, setiap efek akan mengembalikan janji setelah pengiriman, cukup tangani jendela sembul di janji
Bagaimana mencapainya?
Komentar yang paling membantu
Jangan gunakan panggilan balik, setiap efek akan mengembalikan janji setelah pengiriman, cukup tangani jendela sembul di janji