роутер реакции-роутер-дом v4 не работает - PullRequest
0 голосов
/ 22 января 2019

роутер не работает.localhost: 3000 /, localhost: 3000 / # /, localhost: 3000 / # / aa ==> все перемещения на домашней странице.

index.js

import ReactDOM from 'react-dom'
import { BrowserRouter, Route, Switch } from 'react-router-dom'
ReactDOM.render(
    <BrowserRouter>
        <div>
            <Switch>
            <Route exact path="/" component={Home}/>
            <Route path="/aa"  component={Main}/>
            </Switch>
        </div>
    </BrowserRouter>,
    document.getElementById('app')
);

webpack.config.js

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const lunaRocketModulesPath = path.resolve(__dirname, 'luna-rocket');

module.exports = {
    entry: [
        '@babel/polyfill',
        path.join(__dirname,'src/app','app.js')
    ],
    output: {
        path: path.join(__dirname,'build'),
        filename: 'index.bundle.js'
    },
    mode: process.env.NODE_ENV || 'development',
    resolve: {
        alias: {

        },
        extensions: [
            '.js',
        ],
    },
    devServer: {
        contentBase: path.join(__dirname,'src')
    },
    module: {
        rules: [
            {
                // this is so that we can compile any React,
                // ES6 and above into normal ES5 syntax
                test: /\.(js)$/,
                // we do not want anything from node_modules to be compiled
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env']
                    }
                }
            },
            {
                test: /\.(css|scss)$/,
                use: [
                    "style-loader", // creates style nodes from JS strings
                    "css-loader", // translates CSS into CommonJS
                    "sass-loader" // compiles Sass to CSS, using Node Sass by default
                ]
            },
            {
                test: /\.(jpg|jpeg|png|gif|mp3|svg)$/,
                loaders: ['file-loader']
            }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: path.join(__dirname,'src','index.html')
        }),
    ]
};

как двигаться аа ???Помогите мне, пожалуйста.Я не знаю, почему маршрутизатор не работает.а URL в # это что значит реагировать ??если localhost: 3000 / aa -> devServer работает, если localhost: 3000 / # / aa ==> Домашняя страница

(React 16, babel7, wepack4)

Ответы [ 2 ]

0 голосов
/ 22 января 2019

На самом деле с /#/aa вы просто направляетесь к /, потому что # указывает «Якорь» или позицию на странице и позволяет вам «прыгать» или «прокручивать» эту позицию на странице. .

ваш Main будет доступен на локальном хосте: 3000 / AA

0 голосов
/ 22 января 2019

Я не могу точно определить, что здесь неправильно, но попробуйте удалить <Switch></Switch> вокруг маршрутов, а также <Route exact path="/aa" component={Main}/> без точного, это также соответствует первому маршруту

...