2016-11-07 25 views
6

React ve React Router kullanarak çok basit bir web sayfası yapıyorum. Ben UÖM'yi kullanarak Yönlendirici modülünü (v3.0.0) Tepki son sürümünü yüklemiş, benim index.js dosyasında 3 çok basit yolları yazılı:React-Router ile Geçmiş nesne sorunu

import React, {Component} from 'react'; 
import {render} from 'react-dom'; 
import {Router, Route} from 'react-router'; 
//Import custom components 
import About from '../components/about.js'; 
import Contact from '../components/contact.js'; 
import Sidebar from '../components/sidebar.js'; 
import Imagelist from '../components/image-list.js'; 


    render(
     <Router> 
     <Route component={Sidebar}> 
      <Route path="/" component={Imagelist}/> 
      <Route path="/about" component={About}/> 
      <Route path="/contact" component={Contact}/> 
     </Route> 
     </Router>, 
     document.getElementById('content') 
    ); 

Ama yerel sayfasını açmaya çalıştığınızda bu almaya devam konsolda hatası:

You have provided a history object created with history v2.x or earlier. This version of React Router is only compatible with v3 history objects. Please upgrade to history v3.x.

Ben UÖM'yi kullanarak bu tarih modülünün v3 yükleyerek denedim ama hala şeyler: I hatayı incelediğinizde

Uncaught TypeError: Cannot read property 'getCurrentLocation' of undefined(…)

, bu hat Router.js vurgulanır g bu hatayı et. Hata yapmamı istediği şeyin bu olup olmadığından emin değilim. Doğru şeyi yapıp yapmadığımı bana söyleyebilir misin?

+0

import {Router, Route, browserHistory} from 'react-router'; ... return ( <Router history={browserHistory}> <Route component={Sidebar}> <Route path="/" component={Imagelist}/> <Route path="/about" component={About}/> <Route path="/contact" component={Contact}/> </Route> </Router> ); ... 

kontrol daha fazla ayrıntı Belki de sorunuzun bazı kodlar eklemek gerekir. – Kevin

cevap

12

Hata iletici 3.0'dan bir hata olabilir, çünkü bu belgelerin üzerinde history geçirilmesi gereken bir yer bulamadım. Ancak, geçmiş seçeneklerinden birini Router'a aktarmanız yeterlidir. Geçmişi docs'da geçirmeden bir örnek görebiliyordum.

Temelde yapmanız gereken tek şey: Burada https://github.com/ReactTraining/react-router/blob/master/docs/guides/Histories.md

+0

Harika, teşekkürler! Bu düzeltildi. Bu 'browserHistory' neden içe aktarılmalı? Https://github.com/ReactTraining/react-router/blob/master/docs/guides/Histories.md adresinde görebileceğiniz gibi, –

+0

@MaxineEllah, birden fazla tarih nesnesi türü vardır (browserHistory', hashHistory' ...), ve varsayılan bir tane olduğunu düşündüm, bu yüzden onu uyarlama gereği duymamış olman gerekmeyecek. Ama öyle görünüyor ki bir tanesini geçmeniz gerekiyor, ben de kendi repolarında bir soruyu sordum. Buradan ulaşabilirsiniz https://github.com/ReactTraining/react-router/issues/4097 –

+0

Teşekkür ederim bu gerçekten faydalı. –

İlgili konular