2017-03-13 11 views
0

Ich versuche, warum eine bestimmte Funktion von Router reagiert mit der Alpha-Version arbeitet, um herauszufinden, aber nicht die aktuelle Version v4React.CreateElement Problem auf reagieren-Router-v4, nicht v4-alpha4

Index js

import React from 'react'; 
import { render } from 'react-dom'; 
import { BrowserRouter, Match } from 'react-router'; 

import NotFound from './components/NotFound'; 

const Root =() => { 
    return (
    <BrowserRouter> 
     <div> 
     <Match exactly pattern="/" component={NotFound} /> 
     </div> 
    </BrowserRouter> 
) 
} 

render(<Root />, document.querySelector('#root')); 

package.json

{ 
    "name": "rbm-dashboard", 
    "version": "0.1.0", 
    "private": true, 
    "dependencies": { 
    "material-ui": "^0.17.0", 
    "react": "^15.4.2", 
    "react-tap-event-plugin": "^2.0.1", 
    "react-dom": "^15.4.2" 
    }, 
    "devDependencies": { 
    "react-router": "4.0.0-alpha.4", 
    "react-scripts": "0.9.3" 
    }, 
    "scripts": { 
    "start": "react-scripts start", 
    "build": "react-scripts build", 
    "test": "react-scripts test --env=jsdom", 
    "eject": "react-scripts eject" 
    } 
} 

NotFound.js

import React from 'react'; 

class NotFound extends React.Component { 
    render() { 
    return (
     <h2>Not Found</h2> 
    ) 
    } 
} 

export default NotFound; 

Wenn ich die reagieren-Router-Version von 4.0.0-alpha.4 zu^4.0.0 wechseln, erhalte ich die folgenden Fehler

enter image description here

I don Ich habe kein Problem mit der Alpha-Version, aber ich möchte herausfinden, was das Problem ist, damit ich daraus lernen kann. Wenn es nötig ist, kann ich den Code auch zu Github schieben, wenn irgendjemand es lokal betrachten möchte.

Danke

Antwort

2

Weil Match nicht mehr eine Sache. Ändern Sie Match pattern zu Route path und Sie sollten gut sein. Importieren Sie auch alles von react-router-dom nicht react-router.

+0

Yup, das hat den Trick dank! Obwohl, irgendeinen Grund, warum reac-router-dom über react-router? –

+1

Verwenden Sie DOM, wenn Sie im Internet sind. Verwenden Sie Native, wenn Sie auf Native React reagieren. Sie sollten niemals nur einen Reaktiv-Router verwenden. Das DOM- und Native-Paket liefert alles, was Sie brauchen. –

Verwandte Themen