Kami memiliki beberapa tempat dalam kode kami di mana kami melewati beberapa objek tindakan terikat ke dalam komponen. Akan sangat bagus jika secara opsional meneruskan daftar objek tindakan ke bindActionCreators
.
bindActionCreators([SomeActions, OtherActions], dispatch)
Peringatan tentu saja adalah tindakan duplikat akan ditimpa oleh yang terakhir diproses.
Anda dapat melakukan ini dengan proposal penyebaran objek ES7:
bindActionCreators({ ...SomeActions, ...OtherActions }, dispatch)
atau (vanilla ES6, membutuhkan Object.assign
polyfill atau plugin Babel)
bindActionCreators(Object.assign({}, SomeActions, OtherActions), dispatch)
atau (ES5, mengasumsikan lodash
)
var assign = require('lodash/object/assign');
bindActionCreators(assign({}, SomeActions, OtherActions), dispatch)
Ah luar biasa, itu bahkan lebih mudah. Terima kasih!
🙌.
Ini sangat membantu! Terima kasih!
Sangat membantu! :bintang2:
@gaearon haruskah ini ditambahkan ke bagian tips di bindActionCreators
API doc?
Permintaan tarik diterima :wink:
Saya tidak aktif mengerjakan dokumen sekarang jadi jawaban saya sama: "jika Anda ingin sesuatu ada di dokumen, silakan kirim PR".
Tidak yakin apakah ini akan membantu siapa pun, tetapi saya mencoba menggabungkan tindakan aplikasi dan Tindakan dari react-native-router-flux
, dan di bawah ini berhasil untuk saya.
import * as AppActions from './actions';
import { Actions } from 'react-native-router-flux';
function mapDispatchToProps(dispatch) {
return { actions: {...bindActionCreators(AppActions , dispatch), ...Actions } };
}
Tidak yakin apakah ini akan membantu siapa pun, tetapi saya mencoba menggabungkan tindakan aplikasi saya dan Tindakan dari react-native-router-flux, dan di bawah ini berfungsi untuk saya.
Ini sedikit membingungkan karena Actions
dari react-native-router-flux
tampaknya tidak memiliki kesamaan dengan Redux, dan mungkin seharusnya tidak berada di mapDispatchToProps
sama sekali. Cukup gunakan langsung di komponen Anda.
Komentar yang paling membantu
Anda dapat melakukan ini dengan proposal penyebaran objek ES7:
atau (vanilla ES6, membutuhkan
Object.assign
polyfill atau plugin Babel)atau (ES5, mengasumsikan
lodash
)