this.props.dispatch() tidak ditentukan menggunakan komposisi ulang siklus hidup({})

Jadi saya mencoba memindahkan metode siklus hidup saya ke dekorator HOC menggunakan Recompose. Sesuatu seperti ini...

export const fetchOptions= lifecycle({  
  componentDidMount() {
     this.props.dispatch(change('mainForm', 'orderHeader.proxies', this.props.currentSalesRepId));
  },

  componentDidUpdate(prevProps) {
    if (this.props.total != prevProps.total){
      this.props.dispatch(change('mainForm', 'totalPurchase', this.props.total));
    }
  }
 });

Lalu saya mencoba menambahkannya ke komponen formulir saya yang merender semua markup saya. Seperti ini.

export default compose(
  connect(mapState, mapDispatch),
  fetchOptions,
)(MainReduxForm)

Saya terus mendapatkan pesan kesalahan bahwa this.props.dispatch bukan fungsi... Ada pemikiran? Saya sengaja membuat ini singkat untuk menghindari dinding teks. Jika Anda memerlukan info tambahan, beri tahu saya!


person Shawn Matthews    schedule 31.03.2018    source sumber
comment
Seperti apa mapDispatch itu? Apakah Anda memasukkan dispatch ke dalam alat peraga?   -  person Oblosys    schedule 31.03.2018


Jawaban (1)


Masalahnya di sini adalah metode dispatch hanya akan ditambahkan secara otomatis ke props Anda jika Anda tidak menyediakan fungsi mapDispatchToProps atau dalam kasus Anda. mapDispatch

Jadi Anda memiliki dua pilihan, hapus mapDispatch dari panggilan koneksi Anda.

export default compose(
  connect(mapState),
  fetchOptions,
)(MainReduxForm)

atau jika Anda melakukan sesuatu di dalam mapDispatch Anda cukup tambahkan pengiriman ke objek pengembalian Anda

const mapDispatchToProps = (dispatch) => {
    return {
        dispatch,
        ...
        other dispatch functions here
        ...
        }
    }
}
person Victor Ribeiro da Silva Eloy    schedule 31.03.2018
comment
Luar biasa! menambahkan pengiriman di mapDispatch mengatasi masalah ini! Entah kenapa aku tidak memikirkan hal itu! - person Shawn Matthews; 01.04.2018