Saya meminta nasihat anda semua.
Saya mencipta Komponen komponen dan menulis fungsi lompat yang serupa dengan this.context.router.push("/user/list") di dalam panggilan balik kejayaan ajax. Pada masa yang sama, Component.contextTypes={ router: React.PropTypes.object.isRequired } ditulis di luar komponen. Permintaan ajax juga berjaya, tetapi halaman itu tidak melompat, yang agak meragukan. . .
Struktur kod adalah serupa:
class Component extends React.Component{
...
success: function(data) {
alert(data);
this.context.router.push(...)
}
}
Component.contextTypes={
router: React.PropTypes.object.isRequired
}
Tidak dapat ini? Cuba gunakan success()->()
Di sini saya akan menulis tentang perangkap yang saya temui semasa mencari jawapan di Internet Ia juga untuk memaklumkan kepada pemula yang menghadapi masalah yang sama atau serupa kemudian. , saya dapati Seseorang menulisnya di dalam komponen dengan cara ini:
Namun, apabila saya melakukan ini, saya selalu mendapat masalah di sini, iaitu, ralat "Tidak boleh membaca sifat 'push' tidak ditakrifkan" dilaporkan. Tidak jelas mengapa, mari kita tulis dahulu"Tidak dapat membaca sifat 'tolak' tidak ditakrifkan"
Ralat ini memastikan bahawa ContextTypes ditulis
dan pembina tidak kehilangan konteks apabila memanggil super