reaksi-router Tidak dapat membaca properti 'push' yang tidak ditentukan

Saya menggunakan router reaksi untuk menavigasi ke halaman tertentu setelah masuk melalui api REST saya.

Ini contoh kode saya, coba ini:

export default {
  loginUser: (jwt, rememberMe) => {
  var savedJwt = localStorage.getItem('jwt');

  AppDispatcher.dispatch({
    actionType: 'LOGIN_USER',
    jwt: jwt
  });

  if (savedJwt !== jwt) {
    browserHistory.push('/');
    localStorage.setItem('jwt', jwt);
  }
},

Dan ini berdasarkan tutorial router reaksi.

export default {
  loginUser: (jwt, rememberMe) => {
  var savedJwt = localStorage.getItem('jwt');

  contextTypes: {
      router: React.PropTypes.object
  }

  AppDispatcher.dispatch({
    actionType: 'LOGIN_USER',
    jwt: jwt
  });

  if (savedJwt !== jwt) {
    this.context.router.push('/')
    localStorage.setItem('jwt', jwt);
  }
},

Namun keduanya tidak berfungsi. Yang pertama mengeluh tentang "Kesalahan saat masuk ke TypeError: Tidak dapat membaca properti 'push' yang tidak ditentukan", sedangkan yang kedua mengeluh tentang "Kesalahan saat masuk ke TypeError: Tidak dapat membaca properti 'konteks' yang tidak ditentukan".

Adakah yang bisa membantu saya mengatasi ini? Terjebak di sini selama berjam-jam. Terima kasih!


person Yen Sheng    schedule 28.02.2016    source sumber
comment
Sudahkah Anda mengimpor browserHistory dari react-router. import { browserHistory } from 'react-router' Juga versi router reaksi mana yang digunakan?   -  person Rohan Pujari    schedule 28.02.2016


Jawaban (2)


menelepon this.context.router.push('/') tidak akan berfungsi karena alasan apa pun. Namun urlnya berubah saat menggunakan browserHistory.push('/'). Pada titik ini jika Anda menyegarkan halaman, halaman tersebut akan berubah. Namun berdasarkan apa yang telah saya baca sejauh ini, saya tidak tahu bahwa menggunakan router reaksi untuk memuat halaman lain dari server Anda adalah cara terbaik.

person Community    schedule 27.05.2016

Ternyata browserHistory.push('/'); berfungsi dengan baik. Alasan kegagalan ini adalah karena pustaka router reaksi yang salah.

person Yen Sheng    schedule 29.02.2016
comment
apa yang Anda maksud dengan perpustakaan router reaksi yang salah? bagaimana Anda mengatasi masalah ini? - person nburk; 19.05.2016