Компонент не отображается при перенаправлении - PullRequest
0 голосов
/ 21 марта 2019

При отправке формы я хочу перенаправить на другую страницу.Мои файлы таковы:

Main.js

import Home from '../Home'
import Results from "../Results";

    class Main extends Component {
    render() {
        return (
            <Router>
                <Switch>
                    <Route path="/" component={Home}/>
                    <Route path="/show_parsed_results" exact component={Results}/>
                </Switch>
            </Router>
        );
    }
}

export default Main;

Home.js (здесь добавлен только соответствующий код.):

class Home extends Component {
    state = {
        filepath: '',
        skiplines: 0,
        is_loading: false,
        is_error: false,
        is_success: false,
        err_message: ''
    };

    handleSubmit = event => {
        event.preventDefault();

        API.post(`path`, path_inputs)
            .then(res => {
                console.log(res);
                console.log(res.data);
                this.setState({
                    is_loading: false,
                    is_success: true
                })
            })
            .catch(err => {
                this.setState({
                    is_error: true,
                    is_loading: false,
                    err_message: err['message']
                })
            })
    };

    render() {
        if (this.state.is_success) {
            return <Redirect to='/show_parsed_results'/>
        } else {
            return (
                .....render form here.....
            );
        }
    }
}

export default Home;

Results.js (Компонент, который будет отображаться после отправки)

class Results extends Component {
    render() {
        return (
            <div className="container">
                <Button className="center-align">Show Product Price Per Place </Button>
                <Button className="center-align">Show Sales Aggregation Per Place </Button>
            </div>
        );
    }
}

export default Results;

Я перенаправил, если переменная is_success имеет значение true для пути show_parsed_results.В моем маршрутизаторе я сопоставил этот путь с моим Results компонентом.

Но при отправке страница перенаправляется, но она пуста.Его не берут код компонента Результаты вообще.Что мне здесь не хватает?

Я понимаю, что это может быть дубликатом Перенаправление при отправке формы , но я следовал точно такой же процедуре и не могу правильно выполнить перенаправление.Может ли помочь найти то, что мне здесь не хватает?

Заранее спасибо.

Редактировать: добавить структуру дерева и операторы импорта.

Структура дерева:

.
├── App.css
├── App.test.js
├── Home
│   └── index.js
├── Main
│   └── index.js
├── Results
│   └── index.js
├── api
│   └── index.js

1 Ответ

1 голос
/ 21 марта 2019

Добавить 'точный' перед путем обоих маршрутов

Как объяснено в этом вопросе: Реагирует: разница между и

маршрутизатор пройдет все наши определенные маршруты и вернет первое найденное совпадение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...