javascript - Masalah Reactjs tentang melompat this.context.router.push(path) dalam fungsi
PHP中文网
PHP中文网 2017-07-05 11:04:52
0
3
1117

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
}
PHP中文网
PHP中文网

认证0级讲师

membalas semua(3)
仅有的幸福

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:

class Component extends React.Component{
    [有些人写static有些人又不写static] contentTypes: {
        router: React.PropTypes.object.isRequired
    }
    ...
    this.context.router.push(...)
}
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

class Component {
  constructor(props, context) {
    super(...arguments) // 这样才行,如果只写props, 会把context 弄丢,所以super时始终建议这么写
  }
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan