2017-03-19 9 views
13

की संपत्ति 'स्थान' नहीं पढ़ सकता है मुझे प्रतिक्रिया राउटर (मैं संस्करण^4.0.0 का उपयोग कर रहा हूं) के साथ कुछ परेशानी हो रही है।प्रतिक्रिया राउटर वी^4.0.0 अनकॉटेड टाइप एरर: अपरिभाषित

यह मेरा index.js

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import App from './App'; 
import './index.css'; 
import { Router, Route, Link, browserHistory } from 'react-router'; 


ReactDOM.render(
    <Router history={browserHistory} > 
    <Route path="/" component={App} /> 

    </Router>, 
    document.getElementById('root') 
); 

App.js कुछ भी है। मैं यहाँ बुनियादी एक पोस्टिंग कर रहा हूँ, कारण यह समस्या नहीं है (मेरा मानना ​​है)

import React, { Component } from 'react'; 
import logo from './logo.svg'; 
import './App.css'; 

class App extends Component { 
    render() { 
    return (
     <div className="App"> 
     <div className="App-header"> 
      <img src={logo} className="App-logo" alt="logo" /> 
      <h2>Welcome to React</h2> 
     </div> 
     <p className="App-intro"> 
      To get started, edit <code>src/App.js</code> and save to reload. 
     </p> 
     </div> 
    ); 
    } 
} 

export default App; 

और इस क्या होता है जब मैं कंसोल लॉग

Router.js:43 Uncaught TypeError: Cannot read property 'location' of undefined 
    at new Router (Router.js:43) 
    at ReactCompositeComponent.js:295 
    at measureLifeCyclePerf (ReactCompositeComponent.js:75) 
    at ReactCompositeComponentWrapper._constructComponentWithoutOwner (ReactCompositeComponent.js:294) 
    at ReactCompositeComponentWrapper._constructComponent (ReactCompositeComponent.js:280) 
    at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:188) 
    at Object.mountComponent (ReactReconciler.js:46) 
    at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371) 
    at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258) 
    at Object.mountComponent (ReactReconciler.js:46) 

ओह जाँच है, और इस पैकेज है .json सिर्फ मामले

{ 
    "name": "teste2", 
    "version": "0.1.0", 
    "private": true, 
    "dependencies": { 
    "react": "^15.4.2", 
    "react-dom": "^15.4.2", 
    "react-router": "^4.0.0" 
    }, 
    "devDependencies": { 
    "react-scripts": "0.9.5" 
    }, 
    "scripts": { 
    "start": "react-scripts start", 
    "build": "react-scripts build", 
    "test": "react-scripts test --env=jsdom", 
    "eject": "react-scripts eject" 
    } 
} 

में मैं अन्य स्थानों पर इस जाँच कर रहा है, लेकिन मैं इसे हल करने के लिए एक रास्ता नहीं मिला।

आपके धैर्य और सहायता के लिए बहुत बहुत धन्यवाद दोस्तों !!

उत्तर

33

आप कुछ चीजें गलत कर रहे हैं। सबसे पहले, ब्राउज़र हिस्ट्री V4 में एक चीज़ नहीं है, इसलिए आप इसे हटा सकते हैं। दूसरा, आप react-router से सबकुछ आयात कर रहे हैं, यह react-router-dom होना चाहिए। तीसरा, react-router-domRouter निर्यात नहीं करता है, इसके बजाय, यह BrowserRouter निर्यात करता है, इसलिए आपको import { BrowserRouter as Router } from 'react-router-dom की आवश्यकता है। ऐसा लगता है कि आपने अपना वी 3 ऐप लिया है और इसे v4 के साथ काम करने की उम्मीद है, जो कि एक अच्छा विचार नहीं है।

+1

थोड़े मामला है कि haha। मैं उडेमी में एक कोर्स से सीख रहा था और यह वी 3 का इस्तेमाल करता था। मैंने कोशिश की, काम नहीं किया। मैंने वी 4 में इसका इस्तेमाल करने के लिए कुछ रास्ता देखा लेकिन मुझे लगता है कि लोग मुझे डॉउग्रेड करने के लिए कह रहे थे। इस तरह मैं यहां समाप्त हुआ। वैसे भी, आपकी मदद के लिए बहुत बहुत धन्यवाद। मैं वास्तव में इसकी सराहना करता हूं: डी –

+0

कोई चिंता नहीं। सीखने का सबसे अच्छा तरीका यह है कि इसे आजमाएं ताकि मैं आपको दोष न दूं। सौभाग्य! –

+0

अफसोस की बात है, github भंडारों में प्रलेखन और उदाहरण सभी पुराने हैं। पीएस: @ लुकासर्फरा अगर उत्तर आपकी समस्या का समाधान करता है तो इसे स्वीकार करना न भूलें :-) –

0

मैंने यहां सुझाई गई सभी चीजों का प्रयास किया है लेकिन मेरे लिए काम नहीं किया है। तो मामले में मैं एक ऐसी ही समस्या से किसी को भी मदद कर सकते हैं, हर एक ट्यूटोरियल मैं देख लिया है संस्करण 4.

यहाँ के साथ काम करने के लिए अद्यतन नहीं है कि मैं क्या यह काम करने के लिए किया है है

import React from 'react'; 
import App from './App'; 

import ReactDOM from 'react-dom'; 
import { 
    HashRouter, 
    Route 
} from 'react-router-dom'; 


ReactDOM.render((
     <HashRouter> 
      <div> 
       <Route path="/" render={()=><App items={temasArray}/>}/> 
      </div> 
     </HashRouter > 
    ), document.getElementById('root')); 

यही एकमात्र तरीका है जिसे मैंने बिना किसी त्रुटि या चेतावनियों के काम करने में कामयाब रहा है।

आप सबसे आसान तरीका है मेरे लिए अपने घटक के लिए सहारा पास करना चाहते मामले में यह एक है:

<Route path="/" render={()=><App items={temasArray}/>}/> 
संबंधित मुद्दे